Sdílet prostřednictvím


atexit

Zpracuje zadanou funkci při ukončení.

Syntaxe

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

Parametry

func
Funkce, která se má volat.

Vrácená hodnota

atexit vrátí hodnotu 0, pokud je úspěšná nebo nenulová hodnota, pokud dojde k chybě.

Poznámky

Funkce atexit se předá adresu funkce func , která se má volat při normálním ukončení programu. Následná volání pro atexit vytvoření registru funkcí, které jsou spouštěny v pořadí liFO (last-in). Předané funkce nemůžou atexit přijímat parametry. atexit haldu _onexit použijte k uložení registru funkcí. Počet funkcí, které lze zaregistrovat, je tedy omezen pouze pamětí haldy.

Kód ve atexit funkci by neměl obsahovat žádnou závislost na žádné knihovně DLL, která by již mohla být uvolněna při atexit volání funkce.

Chcete-li vygenerovat aplikaci vyhovující standardu ANSI, použijte funkci standardu atexit ANSI (místo podobné _onexit funkce).

Požadavky

Rutina Požadovaný hlavičkový soubor
atexit <stdlib.h>

Příklad

Tento program nasdílí čtyři funkce do zásobníku funkcí, které se mají spustit při atexit zavolání. Když se program ukončí, tyto programy se nejprve spustí na poslední straně.

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

Viz také

Řízení procesů a prostředí
abort
exit, _Exit, _exit
_onexit, _onexit_m