Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Traite la fonction spécifiée en sortie.
Syntaxe
int atexit(
void (__cdecl *func )( void )
);
Paramètres
func
Fonction à appeler.
Valeur retournée
atexit retourne 0 en cas de réussite, ou une valeur différente de zéro si une erreur se produit.
Notes
La atexit fonction est passée l’adresse d’une fonction func à appeler lorsque le programme se termine normalement. Les appels successifs à atexit créent un registre des fonctions qui sont exécutées dans l’ordre « dernier entré, premier sorti » (LIFO). Les fonctions passées à atexit ne peuvent pas prendre de paramètres. atexit et _onexit utilisent le tas pour conserver le registre des fonctions. Le nombre de fonctions pouvant être enregistrées n’est donc limité que par la mémoire de tas.
Le code de la atexit fonction ne doit pas contenir de dépendance sur une DLL qui aurait pu déjà être déchargée lorsque la atexit fonction est appelée.
Pour générer une application conforme à ANSI, utilisez la fonction ANSI standard atexit (plutôt que la fonction similaire _onexit ).
Spécifications
| Routine | En-tête requis |
|---|---|
atexit |
<stdlib.h> |
Exemple
Ce programme place quatre fonctions sur la pile de fonctions à exécuter quand atexit est appelé. Quand le programme s’arrête, ces programmes sont exécutés dans l’ordre « dernier entré, premier sorti ».
// crt_atexit.c
#include <stdlib.h>
#include <stdio.h>
void fn1( void ), fn2( void ), fn3( void ), fn4( void );
int main( void )
{
atexit( fn1 );
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( "This is executed first.\n" );
}
void fn1()
{
printf( "next.\n" );
}
void fn2()
{
printf( "executed " );
}
void fn3()
{
printf( "is " );
}
void fn4()
{
printf( "This " );
}
This is executed first.
This is executed next.
Voir aussi
Processus et contrôle d’environnement
abort
exit, , _Exit_exit
_onexit, _onexit_m