Partager via


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é

Voir aussi

Référence

Processus et contrôle ambiance

abort

exit, _exit

_onexit, _onexit_m