atexit

A megadott függvényt a kilépéskor dolgozza fel.

Syntax

int atexit(
   void (__cdecl *func )( void )
);

Paraméterek

func
Meghívandó függvény.

Visszaadott érték

atexit sikeres esetben 0 értéket ad vissza, hiba esetén pedig nemero értéket.

Remarks

A atexit függvény lekéri a meghívandó függvény func címét, amikor a program normál módon leáll. Egymást követő hívások a atexit last-in, first-out (LIFO) sorrendben végrehajtott függvények nyilvántartásának létrehozásához. Az átadott atexit függvények nem tudják felvenni a paramétereket. atexit és _onexit a halom segítségével tartsa a függvények nyilvántartását. Így a regisztrálható függvények számát csak a halommemória korlátozza.

A függvény kódjának atexit nem szabad függőséget tartalmaznia olyan DLL-eken, amelyeket a függvény meghívásakor már ki lehetett üríteni atexit .

Microsoft-specifikus DLL-viselkedés: Ha egy DLL kiürít, a fogadás DLL_PROCESS_DETACHután DllMain a DLL atexit visszahívásai fordított regisztrációs sorrendben futnak, és az utolsó visszahívás van regisztrálva.

ANSI-konformáló alkalmazás létrehozásához használja az ANSI-standard atexit függvényt (a hasonló _onexit függvény helyett).

Requirements

Rutin Kötelező fejléc
atexit <stdlib.h>

Example

Ez a program négy függvényt küld a függvények veremébe, amelyeket meghívva atexit hajthat végre. Amikor a program kilép, végrehajtja ezeket a függvényeket a last-in, first-out sorrendben.

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

Lásd még

Folyamat- és környezetvezérlés
abort
exit, , _Exit_exit
_onexit, _onexit_m