Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Processa a função especificada na saída.
Sintaxe
int atexit(
void (__cdecl *func )( void )
);
Parameters
func
Função a ser chamada.
Valor de retorno
atexit devolve 0 se for bem-sucedido, ou um valor diferente de zero se ocorrer um erro.
Remarks
A atexit função recebe o endereço de uma função func a chamar quando o programa termina normalmente. Chamadas sucessivas para atexit criar um registo de funções que executam em ordem de último a entrar, primeiro a sair (LIFO). As funções passadas não atexit conseguem obter parâmetros.
atexit e _onexit usar o heap para manter o registo de funções. Assim, o número de funções que pode registar é limitado apenas pela memória heap.
O código na atexit função não deve conter qualquer dependência de qualquer DLL que já possa ser descarregado quando a atexit função for chamada.
Comportamento específico das DLLs da Microsoft: Quando uma DLL é descarregada, após DllMain receber DLL_PROCESS_DETACH, os callbacks atexit da DLL executam-se por ordem inversa de registo, com o último callback registado a ser executado primeiro.
Para gerar uma aplicação compatível com ANSI, utilize a função padrão atexit ANSI (em vez da função semelhante _onexit ).
Requerimentos
| Rotina | Cabeçalho obrigatório |
|---|---|
atexit |
<stdlib.h> |
Exemplo
Este programa empurra quatro funções para a pilha de funções para executar quando atexit é chamado. Quando o programa sai, executa estas funções em ordem de ú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.
Consulte também
Controlo de processos e ambientes
abort
exit, _Exit, _exit
_onexit, _onexit_m