Prevent file descriptors inheritance during Linux fork
If you fork
with the purpose of calling an exec
function, you can use fcntl
with FD_CLOEXEC
to have the file descriptor closed once you exec
:
int fd = open(...);
fcntl(fd, F_SETFD, FD_CLOEXEC);
Such a file descriptor will survive a fork
but not functions of the exec
family.
No. Close them yourself, since you know which ones need to be closed.