Namespaces
Variants

exit

From cppreference.net
Definiert in Header <stdlib.h>
void exit ( int exit_code ) ;
(bis C11)
_Noreturn void exit ( int exit_code ) ;
(seit C11)
(bis C23)
[ [ noreturn ] ] void exit ( int exit_code ) ;
(seit C23)

Veranlasst das normale Programmende.

Es werden mehrere Bereinigungsvorgänge durchgeführt:

  • an atexit übergebene Funktionen werden in umgekehrter Reihenfolge ihrer Registrierung aufgerufen
  • alle C-Streams werden geleert und geschlossen
  • von tmpfile erstellte Dateien werden entfernt
  • die Steuerung wird an die Host-Umgebung zurückgegeben. Wenn exit_code null oder EXIT_SUCCESS ist, wird ein implementierungsdefinierter Status zurückgegeben, der eine erfolgreiche Beendigung anzeigt. Wenn exit_code EXIT_FAILURE ist, wird ein implementierungsdefinierter Status zurückgegeben, der eine erfolglose Beendigung anzeigt. In anderen Fällen wird ein implementierungsdefinierter Statuswert zurückgegeben.

Inhaltsverzeichnis

Hinweise

Die Funktionen, die mit at_quick_exit registriert wurden, werden nicht aufgerufen.

Das Verhalten ist undefiniert, wenn ein Programm exit mehr als einmal aufruft, oder wenn es exit und quick_exit aufruft.

Das Verhalten ist undefiniert, wenn während eines Aufrufs einer Funktion, die mit atexit registriert wurde, die Funktion mit longjmp beendet wird.

Die Rückkehr von der main-Funktion , entweder durch eine return -Anweisung oder durch Erreichen des Funktionsendes, führt exit() aus und übergibt das Argument der return-Anweisung (oder 0 bei impliziter Rückgabe) als exit_code .

Parameter

exit_code - Beendigungsstatus des Programms

Rückgabewert

(keine)

Beispiel

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *fp = fopen("data.txt","r");
    if (fp == NULL)
    {
       fprintf(stderr, "error opening file data.txt in function main()\n");
       exit( EXIT_FAILURE );
    }
    fclose(fp);
    printf("Normal Return\n");
    return EXIT_SUCCESS ;
}

Mögliche Ausgabe:

error opening file data.txt in function main()

Referenzen

  • C17-Standard (ISO/IEC 9899:2018):
  • 7.22.4.4 Die exit-Funktion (S: 256)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.22.4.4 Die exit-Funktion (S: 351-352)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.20.4.3 Die exit-Funktion (S: 315-316)
  • C89/C90-Standard (ISO/IEC 9899:1990):
  • 4.10.4.3 Die exit-Funktion

Siehe auch

verursacht abnormale Programmbeendigung (ohne Bereinigung)
(Funktion)
registriert eine Funktion, die beim Aufruf von exit() aufgerufen wird
(Funktion)
verursacht normale Programmbeendigung ohne vollständige Bereinigung
(Funktion)