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.