Condividi tramite


exit, _exit

Termina il processo chiamante—exit lo termina in modo pulito; _exit termina immediatamente.

Nota

Non utilizzare questo metodo per interrompere un'applicazione Windows Store, eccetto che negli scenari di test o di debug.Le modalità da interfaccia utente o da codice per chiudere un'app Windows Store non sono consentite come descritto nella Section 3.6 dei Requisiti di certificazione delle app di Windows 8.Per ulteriori informazioni, vedere Ciclo di vita delle applicazioni (app di Windows Store).

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

Parametri

  • status
    Stato di uscita.

Note

Le funzioni _exit e exit terminano il processo chiamante. exit chiama —con ordine last-in-first-out (LIFO)—le funzioni registrate da atexit e _onexit, quindi svuota tutti i buffer dei file prima di terminare il processo. _exit termina il processo senza eseguire atexit e _onexit e senza svuotare i buffer. In genere, il valore status è impostato su 0 per indicare un'uscita normale o viene impostato su un altro valore per indicare un errore.

Sebbene le chiamate a _exit e a exit non restituiscono un valore, il byte meno significativo di status viene reso disponibile al processo chiamante in attesa, se esiste, dopo l'uscita del processo chiamante. Il valore status è disponibile al sistema operativo usando il comando batch ERRORLEVEL ed è rappresentato da una di due costanti: EXIT_SUCCESS, rappresentato dal valore 0, o EXIT_FAILURE, rappresentato dal valore 1. exit, _exit, _cexit e _c_exit si comportano come segue.

Funzione

Descrizione

exit

Esegue le procedure complete di terminazione della libreria di C, termina il processo e terminata con il codice di stato fornito.

_exit

Esegue le procedure veloci di terminazione della libreria di C, termina il processo e terminata con il codice di stato fornito.

_cexit

Esegue le procedure complete di terminazione della libreria di C e ritorna al chiamante, ma non termina il processo.

_c_exit

Esegue le procedure veloci di terminazione della libreria di C e ritorna al chiamante, ma non termina il processo.

Quando si chiama la funzione _exit o exit, i distruttori per gli oggetti temporanei o automatici presenti al momento della chiamata non vengono chiamati. Un oggetto automatico è definito in una funzione in cui l'oggetto non è dichiarato come statico. Un oggetto temporaneo è un oggetto creato dal compilatore. Per eliminare un oggetto automatico prima di chiamare exit o _exit, chiamare in modo esplicito il distruttore dell'oggetto, come segue:

myObject.myClass::~myClass();

Non utilizzare DLL_PROCESS_ATTACH per chiamare exit da DllMain. Se si desidera terminare la funzione DLLMain, restituire FALSE da DLL_PROCESS_ATTACH.

Requisiti

Funzione

Intestazione obbligatoria

exit

<process.h> o <stdlib.h>

_exit

<process.h> o <stdlib.h>

Per ulteriori informazioni sulla compatibilità, vedere 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 );
}

Equivalente .NET Framework

System::Diagnostics::Process::Kill

Vedere anche

Riferimenti

Controllo processo e ambiente

abort

atexit

_cexit, _c_exit

Funzioni _exec, _wexec

_onexit, _onexit_m

Funzioni _spawn, _wspawn

system, _wsystem