Share via


exit, _exit

Beendet den aufrufenden Prozess. exit beendet diesen nach der Bereinigung; _exit beendet ihn sofort.

Hinweis

Verwenden Sie diese Methode nicht, um eine Windows Store-App zu schließen, außer bei Tests oder in Debugszenarios.Programmgesteuerte oder UI-Methoden zum Schließen einer Windows Store-App sind gemäß Abschnitt 3.6 der Zertifizierungsanforderungen für Windows 8-Apps nicht zulässig.Weitere Informationen finden Sie unter Anwendungslebenszyklus (Windows Store-Apps).

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

Parameter

  • status
    Beendigungsstatus.

Hinweise

Die Funktionen exit und _exit beenden den aufrufenden Prozess. exit ruft – in LIFO(Last In First Out)-Reihenfolge – die von atexit und _onexit registrierten Funktionen auf und leert dann vor dem Beenden des Prozesses alle Dateipuffer. _exit beendet den Prozess, ohne atexit oder _onexit zu verarbeiten und ohne den Streampuffer zu leeren. Der status-Wert wird normalerweise zur Kennzeichnen einer normalen Beendigung auf 0 gesetzt oder auf einen anderen Wert, um einen Fehler anzugeben.

Obwohl die Aufrufe exit und _exit keinen Wert zurückgeben, wird das niedrige Byte von status dem ggf. wartenden aufrufenden Prozess zur Verfügung gestellt, nachdem der aufrufende Prozess beendet ist. 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. exit, _exit_cexit und _c_exit verhalten sich wie folgt.

Funktion

Beschreibung

exit

Führt vollständige C-Bibliotheksbeendigungsprozeduren aus, beendet den Prozess und beendet mit dem angegebenen Statuscode.

_exit

Führt schnelle C-Bibliotheksbeendigungsprozeduren aus, beendet den Prozess und beendet mit dem angegebenen Statuscode.

_cexit

Führt vollständige C-Bibliotheksbeendigungsprozeduren aus und kehrt zum Aufrufer zurück, beendet jedoch nicht den Prozess.

_c_exit

Führt schnelle C-Bibliotheksbeendigungsprozeduren aus und kehrt zum Aufrufer zurück, beendet jedoch nicht den Prozess.

Beim Aufruf der exit- oder _exit-Funktion werden die Destruktoren für jedes zum Zeitpunkt des Aufrufs vorhandenen temporären oder automatischen Objekts nicht aufgerufen. Ein automatisches Objekt wird in einer Funktion definiert, in der das Objekt nicht als statisch deklariert ist. Ein temporäres Objekt ist ein Objekt, das vom Compiler erstellt wird. Um ein automatisches Objekt zu zerstören, bevor Sie exit oder _exit aufrufen, wird der Destruktor für das Objekt folgendermaßen explizit aufgerufen:

myObject.myClass::~myClass();

Verwenden Sie nicht DLL_PROCESS_ATTACH, um exit aus DllMain aufzurufen. Wenn Sie die DLLMain-Funktion beenden möchten, geben Sie FALSE von DLL_PROCESS_ATTACH zurück.

Anforderungen

Funktion

Erforderlicher Header

exit

<process.h> oder <stdlib.h>

_exit

<process.h> oder <stdlib.h>

Zusätzliche 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 );
}

.NET Framework-Entsprechung

System::Diagnostics::Process::Kill

Siehe auch

Referenz

Prozess- und Umgebungssteuerung

abort

atexit

_cexit, _c_exit

_exec- und _wexec-Funktionen

_onexit, _onexit_m

_spawn- und _wspawn-Funktionen

system, _wsystem