Provided by:
manpages-fr_1.67.0-1_all 
NOM
exit - Fin normale d’un programme.
SYNOPSIS
#include <stdlib.h>
void exit (int status);
DESCRIPTION
La fonction exit() termine normalement le programme en cours. La
valeur status & 0377 est renvoyée au processus parent. (voir wait(2)).
Toutes les fonctions enregistrées avec atexit(3) et on_exit() sont
invoquées dans l’ordre inverse de l’enregistrement, les flux ouverts
sont vidés et fermés. Les fichiers créés par tmpfile(2) sont
supprimés.
Le standard C mentionne deux constantes symboliques EXIT_SUCCESS et
EXIT_FAILURE qui peuvent être passée à exit() pour indiquer
respectivement une terminaison en succès ou en échec.
VALEUR RENVOYÉE
La fonction exit() ne revient jamais.
CONFORMITÉ
SVID 3, POSIX, BSD 4.3, ISO 9899 ("ANSI C")
NOTES
Durant le traitement de exit, il est possible d’enregistrer des
fonctions supplémentaires avec atexit() et on_exit(). C’est toujours
la dernière fonction enregistrée qui est extraite de leur liste et
invoquée. Le comportement est indéfini si durant ce traitement, on
invoque exit() ou longjmp().
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, VMS utilise une
convention différente.
BSD a tenté de standardiser les codes de sortie, voir le fichier
<sysexits.h>.
Après un exit(), le code de retour doit être transmis au processus
parent. Il y a trois cas. Si le parent a mentionné SA_NOCLDWAIT ou s’il
a positionné le comportement de SIGCHLD à SIG_IGN, le status est
ignoré. Si le père était en attente de la fin de son fils, il reçoit
le status 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 "zombie". Ce
n’est rien d’autre qu’une coquille enveloppant le code de retour, que
le processus père pourra consulter ultérieurement grâce à l’une des
fonctions de la famille wait().
Si l’implémentation supporte le signal SIGCHLD, celui-ci est envoyé au
processus père. Si le père a mentionné 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 su ce terminal reçoit un signal
SIGHUP, et le terminal est dissocié de la session, lui permettant
d’être réacquis par un nouveau processus de contrôle.
Si la fin du processus rend orphelin un groupe de processus, et si
certain membres de ce groupe sont arrêtés, alors tous les processus du
groupe vont recevoir SIGHUP suivi de SIGCONT.
VOIR AUSSI
_exit(2), wait(2), atexit(3), on_exit(3) tmpfile(3)
TRADUCTION
Christophe Blaess, 1996-2003.