std:: quick_exit
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert in Header
<cstdlib>
|
||
|
[
[
noreturn
]
]
void
quick_exit
(
int
exit_code
)
noexcept
;
|
(seit C++11) | |
Verursacht ein normales Programmende, ohne die Ressourcen vollständig zu bereinigen.
An std::at_quick_exit übergebene Funktionen werden in umgekehrter Reihenfolge ihrer Registrierung aufgerufen. Wenn eine Exception aus einer dieser Funktionen auszubrechen versucht, wird std::terminate aufgerufen. Nach dem Aufruf der registrierten Funktionen ruft es std::_Exit ( exit_code ) auf.
An std::atexit übergebene Funktionen werden nicht aufgerufen.
Inhaltsverzeichnis |
Parameter
| exit_code | - | Exit-Status des Programms |
Rückgabewert
(keine)
Beispiel
#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
|
|