exit, _Exit, _exit

Beendet den aufrufenden Prozess. Die Funktion exit beendet ihn nach der Bereinigung; _exit und _Exit beenden ihn sofort.

Hinweis

Verwenden Sie diese Methode nicht, um eine Universelle Windows-Plattform -App (UWP) außer in Test- oder Debuggingszenarien herunterzufahren. Programmgesteuerte oder UI-Methoden zum Schließen einer Store-App sind gemäß den Microsoft Store-Richtlinien nicht zulässig. Weitere Informationen finden Sie im Lebenszyklus der UWP-App. Weitere Informationen zu UWP-Apps finden Sie in Universelle Windows-Plattform Dokumentation.

Syntax

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

Parameter

status
Beendigungsstatuscode.

Hinweise

Die Funktionen exit, _Exit und _exit beenden den aufrufenden Prozess. Die Funktion exit ruft Destruktoren für threadlokale Objekte und anschließend – in LIFO-Reihenfolge (Last In First Out) – die Funktionen auf, die von atexit und _onexitregistriert wurden; schließlich werden alle Puffer geleert, bevor der Prozess beendet wird. Die Funktionen _Exit und _exit beenden den Prozess, ohne threadlokale Objekte zu zerstören oder die Funktionen atexit oder _onexit zu verarbeiten, und ohne die Datenstrompuffer zu leeren.

Obwohl die exitAufrufe _exit_Exit keinen Wert zurückgeben, wird der Wert in status der Hostumgebung oder beim Warten des Aufrufvorgangs, sofern vorhanden, nach dem Beenden des Prozesses verfügbar gemacht. Der Aufrufer legt den Wert von status normalerweise zur Kennzeichnen einer normalen Beendigung auf „0“ fest, auf einen anderen Wert, um einen Fehler anzugeben. Der status -Wert steht dem Betriebssystem-Batchbefehl ERRORLEVEL zur Verfügung und wird durch eine der beiden Konstanten repräsentiert: EXIT_SUCCESS, die einen Wert von 0 darstellt, oder EXIT_FAILURE, die einen Wert von 1 darstellt.

Die Funktionen exit, _Exit, _exit, quick_exit, _cexitund _c_exit verhalten sich wie folgt.

Function Beschreibung
exit Führt vollständige C-Bibliotheksbeendigungsprozeduren aus, beendet den Prozess und übergibt den angegebenen Statuscode der Hostumgebung.
_Exit Führt minimale C-Bibliotheksbeendigungsprozeduren aus, beendet den Prozess und übergibt den angegebenen Statuscode der Hostumgebung.
_exit Führt minimale C-Bibliotheksbeendigungsprozeduren aus, beendet den Prozess und übergibt den angegebenen Statuscode der Hostumgebung.
quick_exit Führt schnelle C-Bibliotheksbeendigungsprozeduren aus, beendet den Prozess und übergibt den angegebenen Statuscode der Hostumgebung.
_cexit Führt vollständige C-Bibliotheksbeendigungsprozeduren aus und kehrt zum Aufrufer zurück. Beendet den Prozess nicht.
_c_exit Führt minimale C-Bibliotheksbeendigungsprozeduren aus und kehrt zum Aufrufer zurück. Beendet den Prozess nicht.

Wenn Sie die exitOder-Funktion _exit_Exit aufrufen, werden die Destruktoren für temporäre oder automatische Objekte, die zum Zeitpunkt des Aufrufs vorhanden sind, nicht aufgerufen. Ein automatisches Objekt ist ein nicht statisches lokales Objekt, das in einer Funktion definiert ist. Ein temporäres Objekt ist ein Objekt, das vom Compiler erstellt wird, z. B. einen Wert, der von einem Funktionsaufruf zurückgegeben wird. Um ein automatisches Objekt zu zerstören, _Exitbevor Sie das Objekt aufrufenexit, oder _exitexplizit den Destruktor für das Objekt aufrufen, wie hier gezeigt:

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

Verwenden Sie nicht DLL_PROCESS_ATTACH zum Anrufen exit von DllMain. Um die DLLMain Funktion zu beenden, kehren Sie FALSE von DLL_PROCESS_ATTACH.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Anforderungen

Funktion Erforderlicher Header
exit, _Exit, _exit <process.h> oder <stdlib.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

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

Siehe auch

Prozess- und Umgebungskontrolle
abort
atexit
_cexit, _c_exit
_exec, _wexec Funktionen
_onexit, _onexit_m
quick_exit
_spawn, _wspawn Funktionen
system, _wsystem