exit, _Exit, _exitexit, _Exit, _exit

Termina il processo di chiamata.Terminates the calling process. Il uscire funzione termina dopo la pulizia. Exit e Exit terminano immediatamente.The exit function terminates it after cleanup; _exit and _Exit terminate it immediately.

Nota

Non utilizzare questo metodo per arrestare un'app di Windows della piattaforma UWP (Universal), ad eccezione di testing o scenari di debug.Do not use this method to shut down a Universal Windows Platform (UWP) app, except in testing or debugging scenarios. Modalità a livello di codice o dell'interfaccia utente per chiudere un'app di Store non sono consentiti in base al criteri di Microsoft Store.Programmatic or UI ways to close a Store app are not permitted according to the Microsoft Store policies. Per ulteriori informazioni, vedere ciclo di vita dell'App UWP.For more information, see UWP App lifecycle. Per altre informazioni sulle app di Windows 10, vedere Guide pratiche per le app di Windows 10.For more information about Windows 10 apps, see How-to guides for Windows 10 apps.

SintassiSyntax

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

ParametriParameters

stato codice di stato di uscita.status Exit status code.

NoteRemarks

Il uscire, Exit e Exit funzioni terminano il processo di chiamata.The exit, _Exit and _exit functions terminate the calling process. Il uscire funzione chiama i distruttori per gli oggetti thread-local, quindi chiama, ovvero nell'ordine di last-in-first-out (LIFO), ovvero le funzioni registrate da atexit e OnExite infine Scarica tutti i buffer del file prima di terminare il processo.The exit function calls destructors for thread-local objects, then calls—in last-in-first-out (LIFO) order—the functions that are registered by atexit and _onexit, and then flushes all file buffers before it terminates the process. Il Exit e Exit funzioni terminano il processo senza eliminare definitivamente gli oggetti locali del thread o l'elaborazione atexit o OnExitfunzioni e senza scaricare i buffer di flusso.The _Exit and _exit functions terminate the process without destroying thread-local objects or processing atexit or _onexit functions, and without flushing stream buffers.

Anche se il uscire, Exit e Exit chiamate non restituiscono un valore, il valore nella stato viene reso disponibile all'ambiente host o in attesa processo di chiamata, se presente, dopo la chiusura del processo.Although the exit, _Exit and _exit calls do not return a value, the value in status is made available to the host environment or waiting calling process, if one exists, after the process exits. In genere, il chiamante imposta il stato valore su 0 per indicare una chiusura normale o un altro valore per indicare un errore.Typically, the caller sets the status value to 0 to indicate a normal exit, or to some other value to indicate an error. Il stato valore è disponibile per il comando batch del sistema operativo ERRORLEVEL e viene rappresentato da uno dei due costanti: EXIT_SUCCESS, che rappresenta un valore pari a 0, o EXIT_FAILURE, che rappresenta un valore pari a 1.The status value is available to the operating-system batch command ERRORLEVEL and is represented by one of two constants: EXIT_SUCCESS, which represents a value of 0, or EXIT_FAILURE, which represents a value of 1.

Il uscire, Exit, Exit, quick_exit, cexit, e c_exit funzioni si comportano come indicato di seguito.The exit, _Exit, _exit, quick_exit, _cexit, and _c_exit functions behave as follows.

FunzioneFunction DescrizioneDescription
exitexit Esegue le procedure complete di terminazione della libreria C, termina il processo e fornisce il codice di stato specificato all'ambiente host.Performs complete C library termination procedures, terminates the process, and provides the supplied status code to the host environment.
_Exit_Exit Esegue le procedure minime di terminazione della libreria C, termina il processo e fornisce il codice di stato specificato all'ambiente host.Performs minimal C library termination procedures, terminates the process, and provides the supplied status code to the host environment.
_exit_exit Esegue le procedure minime di terminazione della libreria C, termina il processo e fornisce il codice di stato specificato all'ambiente host.Performs minimal C library termination procedures, terminates the process, and provides the supplied status code to the host environment.
quick_exitquick_exit Esegue le procedure rapide di terminazione della libreria C, termina il processo e fornisce il codice di stato specificato all'ambiente host.Performs quick C library termination procedures, terminates the process, and provides the supplied status code to the host environment.
_cexit_cexit Esegue le procedure complete di terminazione della libreria C e torna al chiamante.Performs complete C library termination procedures and returns to the caller. Non termina il processo.Does not terminate the process.
_c_exit_c_exit Esegue le procedure minime di terminazione della libreria C e torna al chiamante.Performs minimal C library termination procedures and returns to the caller. Non termina il processo.Does not terminate the process.

Quando si chiama il uscire, Exit oppure Exit funzione, i distruttori per gli oggetti temporanei o automatici presenti al momento della chiamata non vengono chiamati.When you call the exit, _Exit or _exit function, the destructors for any temporary or automatic objects that exist at the time of the call are not called. Un oggetto automatico è un oggetto locale non statico definito in una funzione.An automatic object is a non-static local object defined in a function. Un oggetto temporaneo è un oggetto che viene creato dal compilatore, ad esempio un valore restituito da una chiamata di funzione.A temporary object is an object that's created by the compiler, such as a value returned by a function call. Per eliminare un oggetto automatico prima di chiamare uscire, Exit, o Exit, in modo esplicito chiama il distruttore per l'oggetto, come illustrato di seguito:To destroy an automatic object before you call exit, _Exit, or _exit, explicitly call the destructor for the object, as shown here:

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

Non usare DLL_PROCESS_ATTACH chiamare uscire dal DllMain.Do not use DLL_PROCESS_ATTACH to call exit from DllMain. Per uscire dall'installazione di DLLMain funzione, restituiti FALSE dal DLL_PROCESS_ATTACH.To exit the DLLMain function, return FALSE from DLL_PROCESS_ATTACH.

RequisitiRequirements

FunzioneFunction Intestazione obbligatoriaRequired header
uscire, Exit, Exitexit, _Exit, _exit <process.h> o <stdlib.h><process.h> or <stdlib.h>

Per altre informazioni sulla compatibilità, vedere Compatibilità.For additional compatibility information, see Compatibility.

EsempioExample

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

Vedere ancheSee also

Controllo di processi e ambienteProcess and Environment Control
abortabort
atexitatexit
_cexit, _c_exit_cexit, _c_exit
Funzioni _exec, _wexec_exec, _wexec Functions
_onexit, _onexit_m_onexit, _onexit_m
quick_exitquick_exit
Funzioni _spawn, _wspawn_spawn, _wspawn Functions
system, _wsystemsystem, _wsystem