atexit
Przetwarza określoną funkcję podczas zamykania.
Składnia
int atexit(
void (__cdecl *func )( void )
);
Parametry
func
Funkcja, która ma być wywoływana.
Wartość zwracana
atexit
Zwraca wartość 0, jeśli operacja powiedzie się lub wartość niezerowa, jeśli wystąpi błąd.
Uwagi
Funkcja atexit
jest przekazywana adres funkcji func
, która ma być wywoływana, gdy program kończy się normalnie. Kolejne wywołania w celu atexit
utworzenia rejestru funkcji, które są wykonywane w kolejności last-in, first-out (LIFO). Funkcje przekazane do atexit
polecenia nie mogą przyjmować parametrów. atexit
i _onexit
użyj sterta do przechowywania rejestru funkcji. W związku z tym liczba funkcji, które można zarejestrować, jest ograniczona tylko przez pamięć stert.
Kod w atexit
funkcji nie powinien zawierać żadnej zależności od żadnej biblioteki DLL, która mogła zostać już zwolniona po wywołaniu atexit
funkcji.
Aby wygenerować aplikację zgodną ze standardem ANSI, użyj standardowej funkcji ANSI atexit
(zamiast podobnej _onexit
funkcji).
Wymagania
Procedura | Wymagany nagłówek |
---|---|
atexit |
<stdlib.h> |
Przykład
Ten program wypycha cztery funkcje do stosu funkcji, które mają być wykonywane po atexit
wywołaniu. Po zakończeniu działania programu te programy są wykonywane po raz ostatni na początku.
// 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 " );
}
This is executed first.
This is executed next.
Zobacz też
Kontrola procesu i środowiska
abort
exit
, , _Exit
_exit
_onexit
, _onexit_m