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 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

Voir aussi

Référence

Contrôle de processus et d'environnement

abort

exit, _exit

_onexit, _onexit_m