bionic (3) exit.3.gz

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