每个文件描述符都有一个close-on-exec标志。默认情况下,这个标志最后一位被设置为 0。这个标志符的具体作用在于当开辟其他进程调用exec() 族函数时,在调用exec函数之前为exec族函数释放对应的文件描述符。
我们来看一下具体的实例:
这是两个程序: file:fcntl 代码 int main(){pid_t pid;fd = open("test.txt",O_RDWR|O_APPEND);if (fd == -1)##printf("open err/n");printf("fd = %d",fd);printf("fork!/n");fcntl(fd, F_SETFD, 1); char *s="ooooooooooooooooooo";pid = fork();if(pid == 0)exec......
阅读全文