Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       exit - Terminer normalement un processus

SYNOPSIS

       #include <stdlib.h>

       void exit(int status);

DESCRIPTION

       La fonction exit() termine normalement un processus et la valeur status & 0377 est envoyée
       au processus parent (consultez wait(2)).

       Toutes les fonctions enregistrées avec atexit(3) et on_exit(3) sont appelées dans  l'ordre
       inverse  de  leur  enregistrement.  Il est possible pour l'une de ces fonctions d'utiliser
       atexit(3) ou on_exit(3) pour enregistrer une fonction supplémentaire à exécuter lors de la
       procédure  de  terminaison ;  le nouvel enregistrement est ajouté au début de la liste des
       fonctions à appeler. Si l'une de ces fonctions ne rend pas la main (par exemple, car  elle
       appelle  _exit(2)  ou  se  tue avec un signal), alors aucune des fonctions suivantes de la
       liste n'est exécutée et le processus de terminaison  est  abandonné  (en  particulier,  le
       vidage des flux stdio(3)). Si une fonction a été enregistrée plusieurs fois avec atexit(3)
       ou on_exit(3), alors elle sera appelée aussi souvent qu'elle a été enregistrée.

       Tous les flux ouverts du type stdio(3) sont  vidés  et  fermés.  Les  fichiers  créés  par
       tmpfile(3) sont supprimés.

       Le  standard  C  spécifie  deux  constantes  symboliques  EXIT_SUCCESS et EXIT_FAILURE qui
       peuvent être passées à exit() pour indiquer respectivement une terminaison  sans  ou  avec
       échec.

VALEUR RENVOYÉE

       La fonction exit() ne revient jamais.

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001, C89, C99

NOTES

       Le  résultat est indéfini si l'une des fonctions enregistrées avec atexit(3) et on_exit(3)
       appelle  exit()  ou  longjmp(3).  Remarquez   qu'un   appel   d'execve(2)   supprime   les
       enregistrements créés en utilisant atexit(3) et on_exit(3).

       L'utilisation  d'EXIT_SUCCESS  et  EXIT_FAILURE  est  légèrement  plus  portable (vers des
       environnements non UNIX) que celle de zéro et d'une valeur non nulle comme  1  ou  -1.  En
       particulier, le système VMS utilise une convention différente.

       BSD a tenté de standardiser les codes de sortie, consultez le fichier <sysexits.h>.

       Après  exit(), le code de retour doit être transmis au processus parent. Il y a trois cas.
       Si le parent a défini SA_NOCLDWAIT ou s'il a défini le comportement de SIGCHLD à  SIG_IGN,
       le code de retour est ignoré. Si le père était en attente de la fin de son fils, il reçoit
       le code de retour. Dans ces deux cas, le fils meurt immédiatement. Si le parent n'est  pas
       en attente, mais n'a pas indiqué qu'il désire ignorer le code de retour, le processus fils
       devient un processus « zombie » (ce n'est rien d'autre qu'une coquille enveloppant le code
       de retour d'un octet), que le processus père pourra consultez ultérieurement grâce à l'une
       des fonctions wait(2).

       Si l'implémentation supporte le signal SIGCHLD, celui-ci est envoyé au processus père.  Si
       le père a défini SA_NOCLDWAIT, il n'est pas précisé si SIGCHLD est envoyé ou non.

       Si  le  processus est un leader de session, et si son terminal de contrôle est le terminal
       de la session, alors chaque processus du groupe de processus en avant plan de ce  terminal
       reçoit  un  signal  SIGHUP,  et  le terminal est dissocié de cette session, lui permettant
       d'être acquis par un nouveau processus de contrôle.

       Si la fin du processus rend orphelin un groupe de processus, et si certains membres de  ce
       groupe  nouvellement  orphelin  sont  arrêtés,  alors tous les processus de ce groupe vont
       recevoir SIGHUP suivi de SIGCONT. Consultez setpgid(2) pour plus  d'informations  sur  les
       processus orphelins.

VOIR AUSSI

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

COLOPHON

       Cette  page  fait partie de la publication 3.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/> (2003-2006). Florentin  Duneau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».