Si vous fork
dans le but d'appeler un exec
fonction, vous pouvez utiliser fcntl
avec FD_CLOEXEC
pour que le descripteur de fichier soit fermé une fois que vous exec
:
int fd = open(...);
fcntl(fd, F_SETFD, FD_CLOEXEC);
Un tel descripteur de fichier survivra à un fork
mais pas les fonctions du exec
famille.
Non. Fermez-les vous-même, puisque vous savez lesquels doivent être fermés.