Namespaces
Variants

atexit

From cppreference.net
Definiert in Header <stdlib.h>
int atexit ( void ( * func ) ( void ) ) ;

Registriert die Funktion, auf die func zeigt, um beim normalen Programmende (durch exit() oder Rückkehr aus main() ) aufgerufen zu werden. Die Funktionen werden in umgekehrter Reihenfolge ihrer Registrierung aufgerufen, d.h. die zuletzt registrierte Funktion wird zuerst ausgeführt.

Dieselbe Funktion kann mehr als einmal registriert werden.

Die Implementierung garantiert die Unterstützung der Registrierung von mindestens 32 Funktionen. Das genaue Limit ist implementierungsdefiniert.

Inhaltsverzeichnis

Parameter

func - Zeiger auf eine Funktion, die beim normalen Programmende 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("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

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)

Siehe auch

registriert eine Funktion, die beim Aufruf von quick_exit aufgerufen werden soll
(Funktion)