Namensräume
Varianten
Aktionen

atexit

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

Registriert die durch func zeigende Funktion, die bei normaler Programtermination (mittels exit() oder Rückkehr aus main()) aufgerufen werden soll. Die Funktionen werden in umgekehrter Reihenfolge ihrer Registrierung aufgerufen, d.h. die zuletzt registrierte Funktion wird zuerst ausgeführt.

Dieselbe Funktion kann mehrfach registriert werden.

Die Implementierung garantiert die Unterstützung für die Registrierung von mindestens 32 Funktionen. Die genaue Grenze ist implementierungsabhängig.

Inhalt

[edit] Parameter

func - Zeiger auf eine Funktion, die bei normaler Programtermination aufgerufen werden soll

[edit] Rückgabewert

0 bei erfolgreicher Registrierung, ein von Null verschiedener Wert andernfalls.

[edit] Beispiel

#include <stdlib.h>
#include <stdio.h>
 
void f1(void)
{
    puts("f1");
}
 
void f2(void)
{
    puts("f2");
}
 
int main(void)
{
    if ( ! atexit(f1) && ! atexit(f2) && ! atexit(f2) )
        return EXIT_SUCCESS ;
 
    // atexit registration failed
    return EXIT_FAILURE ;
 
}   // <- if registration was successful calls f2, f2, f1

Ausgabe

f2
f2
f1

[edit] Referenzen

  • C17-Standard (ISO/IEC 9899:2018)
  • 7.22.4.2 Die atexit-Funktion (S. 255)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.22.4.2 Die atexit-Funktion (S. 350)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.20.4.2 Die atexit-Funktion (S. 315)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 7.10.4.2 Die atexit-Funktion (S. 156)

[edit] Siehe auch

registriert eine Funktion, die beim Aufruf von quick_exit aufgerufen werden soll
(Funktion) [bearbeiten]
C++-Dokumentation für atexit