Linux:如何将文件描述符标记为在fork上不可继承?

时间:2011-07-06 15:57:24

标签: c linux

在调用fork()时,是否可以在子进程中将特定文件描述符标记为不可继承或关闭它?

3 个答案:

答案 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);

正常情况下,无论如何,近距离执行都是理想的行为。