std::quick_exit
Von de.cppreference.net
| Definiert in Header <cstdlib>
|
||
[[noreturn]] void quick_exit( int exit_code ) noexcept;
|
(seit C++11) | |
Bewirkt eine normale Programmbeendigung, ohne die Ressourcen vollständig zu bereinigen.
Funktionen, die an std::at_quick_exit übergeben wurden, werden in umgekehrter Reihenfolge ihrer Registrierung aufgerufen. Wenn eine Ausnahme versucht, aus einer der Funktionen hinauszupropagieren, wird std::terminate aufgerufen. Nach dem Aufruf der registrierten Funktionen wird std::_Exit(exit_code) aufgerufen.
Funktionen, die an std::atexit übergeben wurden, werden nicht aufgerufen.
Parameter
| exit_code | - | Exit-Status des Programms |
Beispiel
Diesen Code ausführen
#include <cstdlib> #include <iostream> template<int N> void quick_exit_handler() { std::cout << "quick_exit handler #" << N << std::endl; // flush is intended } void at_exit_handler() { std::cout << "at_exit handler\n"; } int main() { if (std::at_quick_exit(quick_exit_handler<1>) || std::at_quick_exit(quick_exit_handler<2>)) { std::cerr << "Registration failed\n"; return EXIT_FAILURE; } std::atexit(at_exit_handler); // the handler will not be called struct R { ~R() { std::cout << "destructor\n"; } } resource; /*...*/ std::quick_exit(EXIT_SUCCESS); std::cout << "This statement is unreachable...\n"; }
Ausgabe:
quick_exit handler #2 quick_exit handler #1
Siehe auch
|
verursacht abnormale Programmbeendigung (ohne Bereinigung)
(Funktion) |
|
|
verursacht normale Programmbeendigung mit Bereinigung
(Funktion) |
|
|
registriert eine Funktion, die beim Aufruf von
std::exit()
aufgerufen werden soll
(Funktion) |
|
|
(C++11)
|
registriert eine Funktion, die beim Aufruf von
std::quick_exit
aufgerufen werden soll
(Funktion) |
|
C-Dokumentation
für
quick_exit
|
|