exit, _Exit, _exit

Termina il processo di chiamata. La funzione exit termina dopo la pulizia _exit e _Exit terminano immediatamente la funzione.

Nota

Non usare questo metodo per arrestare un'app piattaforma UWP (Universal Windows Platform) (UWP), ad eccezione dei test o degli scenari di debug. I modi programmatici o dell'interfaccia utente per chiudere un'app dello Store non sono consentiti in base ai criteri di Microsoft Store. Per altre informazioni, vedi Ciclo di vita delle app UWP. Per altre informazioni sulle app UWP, vedi piattaforma UWP (Universal Windows Platform) documentazione.

Sintassi

void exit(
   int const status
);
void _Exit(
   int const status
);
void _exit(
   int const status
);

Parametri

status
Codice di stato di uscita.

Osservazioni:

Le funzioni exit, _Exit e _exit terminano il processo di chiamata. La funzione exit chiama i distruttori per gli oggetti locali del thread, quindi chiama, secondo l'ordine LIFO (Last In First Out), le funzioni registrate da atexit e _onexite infine scarica tutti i buffer di file prima di terminare il processo. Le funzioni _Exit e _exit terminano il processo senza eliminare gli oggetti locali del thread o elaborare la funzione atexit o _onexit e senza scaricare i buffer di flusso.

Anche se le exitchiamate e _Exit_exit non restituiscono un valore, il valore in status viene reso disponibile per l'ambiente host o il processo chiamante in attesa, se presente, dopo l'uscita del processo. In genere, il chiamante imposta il valore status su 0 per indicare una chiusura normale o un altro valore per indicare un errore. Il valore status è disponibile nel comando batch del sistema operativo ERRORLEVEL ed è rappresentato da una di queste due costanti: EXIT_SUCCESS, che rappresenta un valore 0 o EXIT_FAILURE, che rappresenta un valore 1.

Il comportamento delle funzioni exit, _Exit, _exit, quick_exit, _cexite _c_exit è il seguente.

Funzione Descrizione
exit Esegue le procedure complete di terminazione della libreria C, termina il processo e fornisce il codice di stato specificato all'ambiente host.
_Exit Esegue le procedure minime di terminazione della libreria C, termina il processo e fornisce il codice di stato specificato all'ambiente host.
_exit Esegue le procedure minime di terminazione della libreria C, termina il processo e fornisce il codice di stato specificato all'ambiente host.
quick_exit Esegue le procedure rapide di terminazione della libreria C, termina il processo e fornisce il codice di stato specificato all'ambiente host.
_cexit Esegue le procedure complete di terminazione della libreria C e torna al chiamante. Non termina il processo.
_c_exit Esegue le procedure minime di terminazione della libreria C e torna al chiamante. Non termina il processo.

Quando si chiama la exitfunzione o _exit_Exit , i distruttori per tutti gli oggetti temporanei o automatici esistenti al momento della chiamata non vengono chiamati. Un oggetto automatico è un oggetto locale non statico definito in una funzione. Un oggetto temporaneo è un oggetto creato dal compilatore, ad esempio un valore restituito da una chiamata di funzione. Per eliminare definitivamente un oggetto automatico prima di chiamare exit, _Exito _exit, chiamare in modo esplicito il distruttore per l'oggetto, come illustrato di seguito:

void last_fn() {}
    struct SomeClass {} myInstance{};
    // ...
    myInstance.~SomeClass(); // explicit destructor call
    exit(0);
}

Non usare DLL_PROCESS_ATTACH per chiamare exit da DllMain. Per uscire dalla DLLMain funzione, restituire FALSE da DLL_PROCESS_ATTACH.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Funzione Intestazione obbligatoria
exit, _Exit, _exit <process.h> oppure <stdlib.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// 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 );
}

Vedi anche

Processo e controllo dell'ambiente
abort
atexit
_cexit, _c_exit
_exec, _wexec funzioni
_onexit, _onexit_m
quick_exit
_spawn, _wspawn funzioni
system, _wsystem