exit
, _Exit
, _exit
Encerra o processo de chamada. A função exit
termina após a limpeza. _exit
e _Exit
encerram a função imediatamente.
Observação
Não use esse método para desligar um aplicativo UWP (Plataforma Universal do Windows), exceto em cenários de teste ou depuração. As formas programáticas ou de interface do usuário para fechar um aplicativo da Store não são permitidas de acordo com as políticas da Microsoft Store. Para obter mais informações, confira o Ciclo de vida do aplicativo UWP. Para mais informações sobre aplicativos UWP, confira documentação da Plataforma Universal do Windows.
Sintaxe
void exit(
int const status
);
void _Exit(
int const status
);
void _exit(
int const status
);
Parâmetros
status
Código de status de saída.
Comentários
As funções exit
, _Exit
e _exit
encerram o processo de chamada. A função exit
chama destruidores para objetos de thread local, em seguida, chama — na ordem UEPS (último a entrar, primeiro a sair) — as funções que são registradas por atexit
e _onexit
e, em seguida, libera todos os buffers de arquivo antes de encerrar o processo. As funções _Exit
e _exit
encerram o processo sem destruir objetos de thread local ou processar as funções atexit
ou _onexit
e sem eliminação de buffers de fluxo.
Embora as exit
chamadas , _Exit
and _exit
não retornem um valor, o valor in status
é disponibilizado para o ambiente de host ou para o processo de chamada em espera, se houver, após a saída do processo. Normalmente, o chamador define o valor status
como 0 para indicar uma saída normal ou para algum outro valor para indicar um erro. O valor status
está disponível para o comando em lote do sistema operacional ERRORLEVEL
e é representado por uma das duas constantes: EXIT_SUCCESS
, que representa um valor de 0 ou EXIT_FAILURE
, que representa um valor de 1.
As funções exit
, _Exit
, _exit
, quick_exit
, _cexit
e _c_exit
se comportam da seguinte maneira.
Função | Descrição |
---|---|
exit |
Executa procedimentos completos de encerramento de biblioteca C, encerra o processo e fornece o código de status fornecido para o ambiente de host. |
_Exit |
Executa procedimentos mínimos de encerramento de biblioteca C, encerra o processo e fornece o código de status fornecido para o ambiente de host. |
_exit |
Executa procedimentos mínimos de encerramento de biblioteca C, encerra o processo e fornece o código de status fornecido para o ambiente de host. |
quick_exit |
Executa procedimentos rápidos de encerramento de biblioteca C, encerra o processo e fornece o código de status fornecido para o ambiente de host. |
_cexit |
Executa procedimentos completos de encerramento de biblioteca C e retorna ao chamador. Não encerra o processo. |
_c_exit |
Executa procedimentos mínimos de encerramento de biblioteca C e retorna ao chamador. Não encerra o processo. |
Quando você chama a exit
função , _Exit
ou _exit
, os destruidores de quaisquer objetos temporários ou automáticos existentes no momento da chamada não são chamados. Um objeto automático é um objeto local não estático definido em uma função. Um objeto temporário é um objeto criado pelo compilador, como um valor retornado por uma chamada de função. Para destruir um objeto automático antes de chamar exit
, _Exit
ou _exit
, chame explicitamente o destruidor do objeto, como mostrado aqui:
void last_fn() {}
struct SomeClass {} myInstance{};
// ...
myInstance.~SomeClass(); // explicit destructor call
exit(0);
}
Não use DLL_PROCESS_ATTACH
para ligar exit
de DllMain
. Se desejar sair da função DLLMain
, retorne FALSE
de DLL_PROCESS_ATTACH
.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Requisitos
Função | Cabeçalho necessário |
---|---|
exit , _Exit , _exit |
<process.h> ou <stdlib.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_exit.c
// This program returns an exit code of 1. The
// error code could be tested in a batch file.
#include <stdlib.h>
int main( void )
{
exit( 1 );
}
Confira também
Controle de processo e ambiente
abort
atexit
_cexit
, _c_exit
_exec
, _wexec
funções
_onexit
, _onexit_m
quick_exit
_spawn
, _wspawn
funções
system
, _wsystem