Namespaces
Variants

at_quick_exit

From cppreference.net
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)
verursacht normale Programmbeendigung ohne vollständige Bereinigung
(Funktion)
C++-Dokumentation für at_quick_exit