Il mio processo si biforca più volte e ogni volta che il bambino eseguirà, voglio che esegua qualche altro programma.Quando dovrei usare O_CLOEXEC quando apro il file in Linux?
Nel processo principale apro un descrittore di file con il syscall open()
.
Sarebbe corretto dargli una bandiera O_CLOEXEC
quindi il nuovo programma che eseguo con exec()
non ha la risorsa fd?
Una pratica vecchia (ma soggetta a errori) era per 'for (int = 3; i <256; i ++) close (i);' poco prima di 'execve', lasciando solo stdin, stdout, stderr ... . –