at_quick_exit
|
Definiert in Header
<stdlib.h>
|
||
|
int
at_quick_exit
(
void
(
*
func
)
(
void
)
)
;
|
(seit C11) | |
Registriert die Funktion, auf die
func
zeigt, um beim schnellen Programmende (via
quick_exit
) aufgerufen zu werden.
Das Aufrufen der Funktion aus mehreren Threads verursacht keinen Datenwettlauf. Die Implementierung garantiert die Unterstützung der Registrierung von mindestens 32 Funktionen. Das genaue Limit ist implementierungsdefiniert.
Die registrierten Funktionen werden nicht bei normalem Programmende aufgerufen. Falls eine Funktion in diesem Fall aufgerufen werden muss, atexit verwendet werden.
Inhaltsverzeichnis |
Parameter
| func | - | Zeiger auf eine Funktion, die beim schnellen Programmabbruch aufgerufen wird |
Rückgabewert
0 wenn die Registrierung erfolgreich ist, andernfalls ein Wert ungleich Null.
Beispiel
#include <stdlib.h> #include <stdio.h> void f1(void) { puts("pushed first"); fflush(stdout); } void f2(void) { puts("pushed second"); } int main(void) { at_quick_exit(f1); at_quick_exit(f2); quick_exit(0); }
Ausgabe:
pushed second pushed first
Referenzen
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.22.4.3 Die at_quick_exit-Funktion (S: 255)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.22.4.3 Die at_quick_exit-Funktion (S: 351)
Siehe auch
|
verursacht abnormale Programmbeendigung (ohne Bereinigung)
(Funktion) |
|
|
verursacht normale Programmbeendigung mit Bereinigung
(Funktion) |
|
|
registriert eine Funktion, die beim Aufruf von
exit()
aufgerufen wird
(Funktion) |
|
|
(C11)
|
verursacht normale Programmbeendigung ohne vollständige Bereinigung
(Funktion) |
|
C++-Dokumentation
für
at_quick_exit
|
|