exit
Von cppreference.com
< c | Programmierung
| 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_codeNull oder EXIT_SUCCESS ist, wird ein implementierungsdefinierter Status zurückgegeben, der eine erfolgreiche Beendigung anzeigt. Wennexit_codeEXIT_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
Führen Sie diesen Code aus
#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) | |
| registriert eine Funktion, die bei Aufruf von exit() aufgerufen wird (Funktion) | |
| (C11) |
verursacht eine normale Programmbeendigung ohne vollständige Bereinigung (Funktion) |
| C++-Dokumentation für exit
| |