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 _onexit
e 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 exit
chiamate 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
, _cexit
e _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 exit
funzione 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
, _Exit
o _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