_exit() - termina il processo corrente
#include void _exit(int status);
La funzione _exit() termina il processo che ha invocato la funzione e provoca i seguenti effetti.
- Ogni descrittore di file aperto dal processo chiamante, viene chiuso.
I files condivisi con altri processi non vengono chiusi.- Ciascun figlio del processo corrente viene ereditato dal processo 1 (init, il padre di tutti i processi), sopravvivendo alla scomparsa del processo parent.
- Al padre del processo corrente viene inviato il segnale SIGCHLD, per indicare il termine del processo in esecuzione.
- Il valore di status e' ritornato al padre del processo corrente che lo puo' rilevare tramite la funzione wait().
Per convenzione un valore 0 di status indica una terminazione senza errori, mentre un valore diverso da 0 indica la presenza di una condizione di errore.La funzione _exit(), a differenza della funzione exit() non chiama la funzione fflush() per lo svuotamento dei buffer associati all'I/O bufferizzato, e non effettua le chiamate alle funzioni specificate con la funzione atexit() e on_exit().
La funzione _exit() non ritorna. Termina l'esecuzione del processo.
SVr4, SVID, POSIX, X/OPEN, BSD 4.3
atexit() on_exit() execve() exit() fork() system() wait()
Indice linguaggio C |
Indice librerie C |
Umberto Zappi Home Page |
Indice funzioni C |