Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
ATEXIT
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- VALEUR RENVOYÉE
- EXEMPLE
- NOTES
- CONFORMITÉ À
- VOIR AUSSI
- TRADUCTION
NOM
atexit - Enregistrer une fonction à appeler à la fin d'un programme
SYNOPSIS
#include <stdlib.h>
int atexit(void (*function)(void));
DESCRIPTION
La fonction atexit() enregistre la fonction function donnée pour que
celle-ci soit automatiquement appelée lorsque le programme se termine
normalement avec exit(3) ou lors de la fin de la fonction main. Les
fonctions ainsi enregistrées sont invoquées dans l'ordre inverse de leur
enregistrement ; aucun argument n'est transmis.
POSIX.1-2001 nécessite que l'implémentation suive au moins ATEXIT_MAX (32)
pour que de telles fonctions soient enregistrées. La limite actuelle de
l'implémentation peut être obtenue avec sysconf(3).
Lorsqu'un processus fils est créé avec fork(), il hérite d'un copie des
enregistrements de son parent. À la suite d'un appel réussi à l'une des
fonctions exec(), tous les enregistrements sont supprimés.
VALEUR RENVOYÉE
La fonction atexit() renvoie 0 en cas de succès et une valeur non nulle
en cas d'échec.
EXEMPLE
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void bye(void) {
printf("That was all, folks
");
}
int main(){
long a;
int i;
a = sysconf(_SC_ATEXIT_MAX);
printf("ATEXIT_MAX = %ld
", a);
i = atexit(bye);
if (i != 0) {
fprintf(stderr, "cannot set exit function
");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
NOTES
Depuis la version 2.2.3 de la glibc, atexit() (et on_exit()) peut
être utilisée dans une bibliothèque partagée pour définir les fonctions qui
sont appelées lorsque la bibliothèque partagée est déchargée.
Les fonctions enregistrées avec atexit() (et on_exit()) ne sont pas
appelées si le programme se termine anormalement à cause de l'envoi d'un
signal.
CONFORMITÉ À
SVr4, BSD 4.3, C89, C99, POSIX.1-2001.
VOIR AUSSI
_exit(3), exit(3), on_exit(3)
TRADUCTION
Cette page de manuel a été traduite et mise à jour par
Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003,
puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».
|