Namensräume
Varianten
Aktionen

at_quick_exit

Von cppreference.com
Definiert im Header <stdlib.h>
int at_quick_exit( void (*func)(void) );
(seit C11)

Registriert die von func zeigende Funktion, die beim schnellen Programmabbruch (mittels quick_exit) aufgerufen werden soll.

Das Aufrufen der Funktion aus mehreren Threads verursacht keine Datenrace. Die Implementierung unterstützt garantiert die Registrierung von mindestens 32 Funktionen. Das genaue Limit ist implementierungsabhängig.

Die registrierten Funktionen werden bei einem normalen Programmabbruch nicht aufgerufen. Wenn eine Funktion in diesem Fall aufgerufen werden muss, muss atexit verwendet werden.

Inhalt

[bearbeiten] Parameter

func - Zeiger auf eine Funktion, die beim schnellen Programmabbruch aufgerufen werden soll

[bearbeiten] Rückgabewert

0, wenn die Registrierung erfolgreich ist, ein von Null verschiedener Wert sonst.

[bearbeiten] 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

[bearbeiten] Referenzen

  • C17-Standard (ISO/IEC 9899:2018)
  • 7.22.4.3 Die Funktion at_quick_exit (S. 255)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.22.4.3 Die Funktion at_quick_exit (S. 351)

[bearbeiten] Siehe auch

verursacht abnormalen Programmabbruch (ohne Bereinigung)
(Funktion) [bearbeiten]
verursacht normalen Programmabbruch mit Bereinigung
(Funktion) [bearbeiten]
registriert eine Funktion, die beim Aufruf von exit() aufgerufen werden soll
(Funktion) [bearbeiten]
verursacht eine normale Programmbeendigung ohne vollständige Bereinigung
(Funktion) [bearbeiten]
C++ Dokumentation für at_quick_exit