atexit
Verarbeitet die angegebene Funktion auf der Beenden.
int atexit(
void (__cdecl *func )( void )
);
Parameter
- func
Wird Funktion werden soll.
Rückgabewert
atexit gibt 0 zurück, wenn der Vorgang erfolgreich war oder ein Wert ungleich 0 (null), wenn ein Fehler auftritt.
Hinweise
Der atexit-Funktion wird die Adresse einer Funktion aufgerufen werden sollfunc() übergeben, wenn das Programm gewöhnlich beendet wird.Aufeinander folgende Aufrufe von atexit erstellen ein Register von Funktionen, die ausgeführt werden in Last In, First Out (LIFO) - Reihenfolge.Die Funktionen, die atexit übergebenen Parameter können nicht verwendet werden.atexit und _onexit verwenden den Heap, um das Registrieren von Funktionen aufzunehmen.Auf diese Weise wird die Anzahl der Funktionen, die registriert werden kann, nur durch Heapspeicher beschränkt.
Der Code in der atexit-Funktion darf keine Abhängigkeit von einem DLLs enthalten, die bereits entladen worden sein könnte, wenn die atexit-Funktion aufgerufen wird.
Um eine ANSI-kompatible Anwendung zu generieren, verwenden Sie die Funktion ANSI-STANDARDs atexit (anstatt die ähnliche _onexit-Funktion).
Anforderungen
Routine |
Erforderlicher Header |
---|---|
atexit |
<stdlib.h> |
Beispiel
Dieses Programm gibt vier Funktionen auf den Stapel von den Funktionen, die ausgeführt werden soll, wenn atexit aufgerufen wird.Wenn das Programm wird beendet, diese Programme auf einem letzte in ausgeführt werden, First out Basis.
// 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 " );
}
.NET Framework-Entsprechung
System::Diagnose::Prozess::Beendet