Provided by: manpages-it_3.73-2_all 

NOME
exit - causa un termine normale del processo
SINTASSI
#include <stdlib.h>
void exit(int status);
DESCRIZIONE
La funzione exit() provoca il termine normale dei processi e il valore di status & 0377 è restituito al
genitore (vedere wait(2)).
Tutte le funzioni registrate con atexit(3) e on_exit(3) sono chiamate, in ordine inverso rispetto alla
loro registrazione. (È possibile per una di queste funzioni usare atexit(3) o on_exit(3) per registrare
una funzione aggiuntiva da eseguire durante il processo di uscita; la nuova registrazione è aggiunta
all'inizio dell'elenco di funzioni che rimane da chiamare). Se una di queste funzioni non restituisce
niente (per esempio, chiama _exit(2), o si termina da sola mandandosi un segnale), non viene chiamata
nessuna delle funzioni rimanenti, e la successiva uscita in elaborazione (in particolare, lo svuotamento
degli stream stdio(3)) viene abbandonata. Se una funzione è stata registrata più volte usando atexit(3) o
on_exit(3), verrà chiamata tante volte quante sono le registrazioni.
Tutti gli stream stdio(3) aperti sono svuotati e chiusi. I file creati con tmpfile(3) sono rimossi.
Il C standard specifica due costanti, EXIT_SUCCESS e EXIT_FAILURE, che possono essere passate a exit()
per indicare rispettivamente il successo o l'insuccesso di una chiusura.
VALORE RESTITUITO
La funzione exit() non restituisce nulla.
ATTRIBUTI
Multithreading (vedi pthreads(7)) La funzione exit() usa una variabile globale che non è protetta, per cui non è thread-safe.
CONFORME A
SVr4, 4.3BSD, POSIX.1-2001, C89, C99.
NOTE
Non è definito cosa succede se una delle funzioni registrate usando atexit(3) e on_exit(3) chiama exit()
o longjmp(3). Da notare che una chiamata a execve(2) rimuove le registrazioni create con atexit(3) e
on_exit(3).
L'uso di EXIT_SUCCESS e EXIT_FAILURE è leggermente più portabile (verso ambienti non-Unix) dell'uso di 0
e di qualche valore diverso da zero come 1 o -1. In particolare, VMS usa una convenzione differente.
BSD ha tentato di standardizzare i codici di uscita; vedere il file <sysexits.h>.
Dopo exit(), lo stato di uscita deve essere trasmesso al processo genitore. Ci sono tre casi. Se il
genitore ha impostato SA_NOCLDWAIT, o ha impostato l'handler SIGCHLD a SIG_IGN, lo stato è scartato. Se
il genitore stava aspettando il processo figlio gli viene notificato lo stato di uscita. In entrambi i
casi il processo in uscita muore immediatamente. Se il genitore non ha indicato che non gli interessa lo
stato di uscita, ma non è in attesa, il processo in uscita diviene un processo "zombie" (che non è altro
che un contenitore per il byte che rappresenta lo stato di uscita), così che il genitore possa apprendere
lo stato di uscita quando in seguito chiama una delle funzioni wait(2)
Se l'implementazione supporta il segnale SIGCHLD, questo segnale è inviato al genitore. Se il genitore ha
impostato SA_NOCLDWAIT, non è definito se il segnale SIGCHLD è inviato.
Se il processo è un leader di sessione e il suo terminale di controllo è il terminale di controllo della
sessione, allora a ciascun processo nel gruppo dei processi in primo piano di questo terminale di
controllo viene mandato un segnale SIGHUP, e il terminale è disassociato da questa sessione,
permettendone l'acquisizione da parte di un nuovo processo controllante.
Se l'uscita del processo fa sì che un gruppo di processo divenga orfano, e se un qualunque membro del
nuovo gruppo del processo orfano viene fermato, allora verrà mandato un segnale SIGHUP seguito da un
segnale SIGCONT a ciascun processo in questo gruppo di processo. Si veda setpgid(2) per una spiegazione
dei gruppi di processi orfani.
VEDERE ANCHE
_exit(2), setpgid(2), wait(2), atexit(3), on_exit(3), tmpfile(3)
COLOPHON
Questa pagina fa parte del rilascio 3.73 del progetto Linux man-pages. Una descrizione del progetto, le
istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trova su
http://www.kernel.org/doc/man-pages/.
La versione italiana fa parte del pacchetto man-pages-it v. 3.73, a cura di: ILDP "Italian Linux
Documentation Project" http://www.pluto.it/ildp
Per la traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/
Segnalare eventuali errori di traduzione a ildp@pluto.it
Linux 2014-03-25 EXIT(3)