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 _onexit
registriert 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 exit
Aufrufe _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
, _cexit
und _c_exit
verhalten sich wie folgt.
Funktion | 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 exit
Oder-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, _Exit
bevor Sie das Objekt aufrufenexit
, oder _exit
explizit 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. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der 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