Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 atexit função obtém o endereço de uma função func a ser chamada quando o programa é encerrado normalmente. Chamadas sucessivas para atexit criar um registro de funções que são executadas na ordem LIFO (última entrada e saída). 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. Portanto, o número de funções que você pode registrar é limitado apenas pela memória de heap.
O código na atexit função não deve conter nenhuma dependência em qualquer DLL que já possa ser descarregada quando a atexit função é chamada.
Microsoft comportamento de DLL específico: quando uma DLL descarrega, após DllMain receberDLL_PROCESS_DETACH, os retornos de chamada da atexit DLL são executados em ordem de registro reverso, com o último retorno de chamada registrado em execução primeiro.
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
Este programa envia quatro funções por push para a pilha de funções a serem executadas quando atexit é chamado. Quando o programa é encerrado, ele executa essas funções na ordem de última entrada e saída.
// 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