Compartilhar via


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 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