Udostępnij za pośrednictwem


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