Namensräume
Varianten
Aktionen

exit

Von cppreference.com
Definiert im 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)

Bewirkt die normale Programmbeendigung.

Es werden mehrere Bereinigungsschritte durchgeführt:

  • Funktionen, die an atexit übergeben wurden, werden in umgekehrter Registrierungsreihenfolge aufgerufen.
  • Alle C-Streams werden geleert und geschlossen.
  • Von tmpfile erstellte Dateien werden entfernt.
  • Die Kontrolle 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.

Inhalt

[edit] Anmerkungen

Die mit at_quick_exit registrierten Funktionen 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 eine Funktion, die bei atexit registriert ist, während ihres Aufrufs mit longjmp beendet wird.

Das Zurückkehren aus der main-Funktion, entweder durch eine return-Anweisung oder durch Erreichen des Funktionsendes, ruft exit() auf und übergibt das Argument der return-Anweisung (oder 0, wenn eine implizite Rückgabe verwendet wurde) als exit_code.

[edit] Parameter

exit_code - Beendigungsstatus des Programms

[edit] Rückgabewert

(keine)

[edit] 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()

[edit] Referenzen

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

[edit] Siehe auch

verursacht abnormalen Programmabbruch (ohne Bereinigung)
(Funktion) [bearbeiten]
registriert eine Funktion, die bei Aufruf von exit() aufgerufen wird
(Funktion) [bearbeiten]
verursacht eine normale Programmbeendigung ohne vollständige Bereinigung
(Funktion) [bearbeiten]