Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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