Si fork
con el propósito de llamar a un exec
función, puede usar fcntl
con FD_CLOEXEC
tener el descriptor de archivo cerrado una vez que exec
:
int fd = open(...);
fcntl(fd, F_SETFD, FD_CLOEXEC);
Tal descriptor de archivo sobrevivirá a un fork
pero no funciones del exec
familia.
No. Ciérrelos usted mismo, ya que sabe cuáles deben cerrarse.