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 o , e _exit as chamadas não retornem um valor, o valor em é disponibilizado para o ambiente do host ou para o exitprocesso de chamada em status espera, se houver, _Exit 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 , ou , _Exit os destruidores de quaisquer objetos temporários ou _exit 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 ligar de exitDllMain. 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, consulte Estado global na 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 processos e ambientes
abort
atexit
_cexit, _c_exit
_exec, _wexec funções
_onexit, _onexit_m
quick_exit
_spawn, _wspawn funções
system, _wsystem