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.
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 exitchamadas , _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 exitfunçã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