在调用fork()
时,是否可以在子进程中将特定文件描述符标记为不可继承或关闭它?
答案 0 :(得分:8)
没有。所有文件描述符都在fork中继承。但是,您可以使用fcntl(fd, F_SETFD, FD_CLOEXEC)
设置要在exec上关闭的fd。
答案 1 :(得分:0)
不可能。默认情况下,子进程具有来自父进程的继承文件表。
答案 2 :(得分:0)
如果你真的想要近距离接听,那么这样的事情就可以了:
static void fd_to_close;
static void closer()
{
close(fd_to_close);
}
pthread_atfork(0, 0, closer);
正常情况下,无论如何,近距离执行都是理想的行为。