atexit   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 1er novembre 2003
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
atexit - Enregistrer une fonction à invoquer à la fin du processus  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <stdlib.h>

int atexit (void (*fonction)(void));
 



DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
La fonction atexit() enregistre la fonction donnée pour que celle-ci soit automatiquement invoquée lorsque le processus se termine normalement avec exit(3) ou par un retour de la fonction main(). Les fonctions ainsi enregistrées sont invoquées en ordre inverse de leur enregistrement, aucun argument n'est transmis.

POSIX.1-2001 réclame qu'une implémentation permette qu'au moins ATEXIT_MAX (32) fonctions puissent être enregistrées. La limite actuellement supportée par une implémentation peut être obtenue en utilisant sysconf(3).

Lorsqu'un processus fils est créé avec fork(2), il hérite d'une copie des enregistrements de son père. Avec un appel réussi à l'une de ces fonctions, tous les enregistrements sont annulés  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
La fonction atexit() renvoie 0 si elle réussit, et une valeur non-nulle si elle échoue.  



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
SVr4, BSD 4.3, C89, C99, POSIX.1-2001.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
 



Notes Linux   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Depuis la glibc 2.2.3, atexit() (et on_exit(3)) peuvent être utilisée dans une bibliothèque partagée pour établir des fonctions qui sont appelées lorsque la bibliothèque partagée est déchargée.

Les fonctions enregistrées avec atexit() (et on_exit(3)) ne sont pas appelées si un processus se termine de manière anormale à cause de la délivrance d'un signal.  




EXEMPLE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
_exit(2), exit(3), on_exit(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 22 octobre 1996 et révisée le 8 janvier 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 atexit ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
CONFORMITÉ
NOTES
Notes Linux
EXEMPLE
VOIR AUSSI
TRADUCTION

Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:48:56, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional