Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       atexit - Enregistrer une fonction a appeler a la fin d'un programme

SYNOPSIS

       #include <stdlib.h>

       int atexit(void (*function)(void));

DESCRIPTION

       La  fonction  atexit()  enregistre la fonction function donnee pour que
       celle-ci soit automatiquement appelee lorsque le programme  se  termine
       normalement  avec  exit(3)  ou  lors de la fin de la fonction main. Les
       fonctions ainsi enregistrees sont invoquees  dans  l'ordre  inverse  de
       leur enregistrement ; aucun argument n'est transmis.

       La  meme  fonction  peut  etre  enregistree  plusieurs fois : elle sera
       appelee une fois pour chaque enregistrement.

       POSIX.1-2001 exige que l'implementation permette d'enregistrer au moins
       ATEXIT_MAX   (32)   de   ces   fonctions.   La   limite   actuelle   de
       l'implementation peut etre obtenue avec sysconf(3).

       Lorsqu'un processus fils est cree avec fork(2), il herite  d'une  copie
       des enregistrements de son parent. A la suite d'un appel reussi a l'une
       des fonctions exec(3), tous les enregistrements sont supprimes.

VALEUR RENVOY'EE

       La fonction atexit() renvoie 0 en cas de succes et une valeur non nulle
       en cas d'echec.

CONFORMIT'E

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

NOTES

       Les  fonctions  enregistrees  avec atexit() (et on_exit(3)) ne sont pas
       appelees si le programme se termine anormalement  a  cause  de  l'envoi
       d'un signal.

       Si  l'une des fonctions enregistrees appelle _exit(2), alors toutes les
       autres fonctions enregistrees ne seront pas appelees, et les etapes  de
       fin de processus effectuees par exit(3) ne seront pas realisees.

       POSIX.1-2001  dit  que  le  resultat  de plus d'un appel a exit(3) (par
       exemple, appele exit(3) dans une fonction enregistree  avec  atexit(3))
       est  indefini.  Sur  quelques systemes (mais pas sous Linux), cela peut
       produire une boucle infinie ; les programmes portables ne  doivent  pas
       appeler exit(3) dans une fonction enregistree avec atexit(3).

       Les fonctions atexit() et on_exit(3) enregistrent les fonctions dans la
       meme liste : les  fonctions  ainsi  enregistrees  sont  invoquees  dans
       l'ordre inverse de leur enregistrement par ces deux fonctions.

       POSIX.1-2001  dit  que  le  resultat  est  indefini  si  longjmp(3) est
       utilisee pour terminer  l'execution  d'une  fonction  enregistree  avec
       atexit().

   Notes sur Linux
       Depuis la version 2.2.3 de la glibc, atexit() (et on_exit(3)) peut etre
       utilisee dans une bibliotheque partagee pour definir les fonctions  qui
       sont appelees lorsque la bibliotheque partagee est dechargee.

EXEMPLE

       #include <stdio.h>
       #include <stdlib.h>
       #include <unistd.h>

       void
       bye(void)
       {
           printf("That was all, folks\n");
       }

       int
       main(void)
       {
           long a;
           int i;

           a = sysconf(_SC_ATEXIT_MAX);
           printf("ATEXIT_MAX = %ld\n", a);

           i = atexit(bye);
           if (i != 0) {
               fprintf(stderr, "cannot set exit function\n");
               exit(EXIT_FAILURE);
           }

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       _exit(2), exit(3), on_exit(3)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

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

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

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                           5 decembre 2008                      ATEXIT(3)