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

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> ».
Linux 14 février 2013 EXIT(3)