如下所示:
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) {
...
虽然我读过man fcntl
,但我不明白它是做什么的。
发布于 2011-05-25 21:21:25
它标记文件描述符,以便当进程或它的任何子进程调用exec*()
系列函数之一时,它将自动为close()
d。这对防止你的文件描述符泄露给system()
等运行的随机程序很有用。
https://stackoverflow.com/questions/6125068
复制相似问题