#include <stdlib.h> // <cstdlib> en C++
int atexit( void ( * function ) (void) );
Permet d'ajouter une fonction qui sera exécutée en sortie de la fonction main
ou de la sortie du processus (du programme) via un appel à la fonction
exit
.
atexit
ne seront
pas invoquées. Si vous souhaitez changer ce comportement, il sera nécessaire d'intercepter le signal (via la fonction signal
)
pour forcer un appel explicit à exit
.
void ( * function ) (void)
(aucun paramètre et aucune valeur de retour).
La valeur 0
est revoyée si la fonction est correctement ajoutée. Une valeur non nulle est renvoyée dans le cas inverse.
#include <stdio.h> #include <stdlib.h> #include <assert.h> void firstFunction() { printf( "firstFunction\n" ); } void secondFunction() { printf( "secondFunction\n" ); } int main() { int cr = atexit( firstFunction ); assert( cr == 0 ); cr = atexit( secondFunction ); assert( cr == 0 ); printf( "main finished\n" ); /* Results are : main finished secondFunction firstFunction */ return 0; }
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :