Available in

(1) (1)/ko (1)/zh_CN (1)/zh_TW (1grass) (1posix) (2) (2)/de (2)/es (2)/fr (2)/ja (2)/ko (2)/nl (2)/pl (3) (3)/cs (3)/de (3)/es (3)/fr (3)/it (3)/ja (3)/pl (3)/pt (3)/zh_CN (3)/zh_TW (3c) (3posix) (3tcl) (3tcl)/zh_CN (3tcl)/zh_TW (7) (n)

TOC

EXIT(3)                              2007                              EXIT(3)



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) streams) 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 suc-
       cesso o l'insuccesso di una chiusura.

VALORE RESTITUITO

       La funzione exit() non restituisce nulla.

CONFORME A

       SVr4, 4.3BSD, POSIX.1-2001.

NOTE

       Non  definito cosa succede se  una  delle  funzioni  registrate  usando
       atexit(3) e on_exit(3) chiama exit() o longjmp(3).

       L'uso di EXIT_SUCCESS e EXIT_FAILURE
        leggermente pi portabile (verso ambienti non-Unix) di 0 e qualche val-
       ore non-zero come 1 o -1.  In particolare, VMS usa una convenzione dif-
       ferente.

       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 geni-
       tore.   Ci  sono  tre  casi.   Se  il  genitore  ha impostato l'handler
       SA_NOCLDWAIT, o 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  imme-
       diatamente.   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  settato  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 pro-
       cesso 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.

VEDERE ANCHE

       _exit(2), wait(2), atexit(3), on_exit(3), tmpfile(3)



giugno                                12                               EXIT(3)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.