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 l'opération a réussi, ou une valeur différente de zéro si une erreur se produit.
Notes
La fonction d' atexit est passée l'adresse d'une fonction (func) à appeler lorsque le programme se termine normalement.Les appels répétés à atexit créent un registre des fonctions exécutées dans dernier entré, premier sorti (FIFO (LIFO) commande.Les fonctions passées à atexit ne peuvent pas accepter de paramètres.atexit et _onexit utilisent le tas pour contenir le registre des fonctions.Ainsi, le nombre de fonctions qui peuvent être enregistrées est limité uniquement par la mémoire de tas.
Le code dans la fonction d' atexit ne doit pas contenir de dépendance sur aucun DLL qui peut avoir déjà été déchargé lorsque la fonction de atexit est appelée.
Pour générer une application ANSI-conforme, utilisez la fonction ANSI standard d' atexit (plutôt que la fonction similaire pour _onexit ).
Configuration requise
routine |
en-tête requis |
---|---|
atexit |
<stdlib.h> |
Exemple
Ce programme pousse quatre fonctions dans la pile de fonctions à exécuter lorsque atexit est appelé.Lorsque le programme se ferme, ces programmes sont exécutées sur un bout dans, première base.
// 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 : : diagnostic : : processus : : quitté