atexit
Traite la fonction spécifiée à la sortie.
int atexit(
void (__cdecl *func )( void )
);
Paramètres
- func
Fonction à appeler.
Valeur de retour
atexit retourne 0 si a réussi, ou une valeur différente de zéro si une erreur se produit.
Notes
La fonction atexit se voit passer l'adresse d'une fonction (func) à appeler lorsque le programme se termine normalement. Les appels successifs à atexit créent un registre des fonctions exécutées dans l'ordre dernier entré premier sorti (LIFO). Les fonctions transmises à atexit ne peuvent pas prendre de paramètres. atexit et _onexit utilisent le tas pour tenir le registre des fonctions. Par conséquent, le nombre de fonctions qui peuvent être stockées n'est limité que par la mémoire de tas.
Le code de la fonction atexit ne doit pas contenir de dépendance sur aucun DLL qui peut avoir déjà été déchargé quand la fonction atexit a été appelée.
Pour générer une application conforme à l'ANSI, utilisez la fonction ANSI standard atexit (plutôt que la fonction similaire _onexit ).
Configuration requise
Routine |
En-tête requis |
---|---|
atexit |
<stdlib.h> |
Exemple
Ce programme place quatre fonctions sur la pile de fonctions à exécuter lorsque atexit est appelé. Lorsque le programme sort, ces programmes sont exécutées sur une base 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 " );
}
Équivalent .NET Framework
System::Diagnostics::Process::Exited