atexit
Processa a função especificada na saída.
Sintaxe
int atexit(
void (__cdecl *func )( void )
);
Parâmetros
func
Função a ser chamada.
Valor retornado
atexit
retorna 0 se for bem-sucedido ou um valor diferente de zero se ocorrer um erro.
Comentários
A função atexit
é passada para o endereço de uma função func
a ser chamada quando o programa terminar normalmente. Chamadas sucessivas para atexit
criam um registro das funções que são executadas na ordem UEPS (último a entrar, primeiro a sair). As funções passadas para atexit
não podem receber parâmetros. atexit
e _onexit
usam o heap para conter o registro das funções. Assim, o número de funções que podem ser registradas é limitado apenas pela memória de heap.
O código na função atexit
não deve conter nenhuma dependência de nenhuma DLL que possa já ter sido descarregada quando a função atexit
for chamada.
Para gerar um aplicativo em conformidade com o ANSI, use a função atexit
do padrão ANSI (em vez da função _onexit
semelhante).
Requisitos
Rotina | Cabeçalho necessário |
---|---|
atexit |
<stdlib.h> |
Exemplo
Esse programa envia quatro funções para a pilha de funções a serem executadas quando atexit
é chamado. Quando o programa é encerrado, esses programas são executados no esquema último a entrar, primeiro a sair.
// 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.
Confira também
Controle de processo e ambiente
abort
exit
, _Exit
, _exit
_onexit
, _onexit_m