Provided by: manpages-it_3.73-2_all bug

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)