Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

atexit - Prozessendefunktion registrieren

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

int atexit(void (*func) (void));

Beschreibung

Mit atexit() wird eine Funktion func() registriert, die bei normaler Prozessbeendigung ohne Argumente aufgerufen werden soll. Registrierte Funktionen werden in der umgekehrten Reihenfolge ihrer Registrierung aufgerufen. Wird eine Funktion mehrmals registriert, wird sie auch mehrmals aufgerufen.

Die mit atexit() registrierten Funktionen werden nur aufgerufen, wenn der Prozess auf eine der folgenden Arten "normal" beendet wird:

  • expliziter Aufruf von exit()

  • Beendigung der main-Funktion ohne expliziten exit-Aufruf

    BS2000

  • Prozessbeendigung durch das C-Laufzeitsystem mit exit(-1), das heißt bei Auftritt eines raise-Signals (nicht SIGABRT), das entweder nicht oder durch die voreingestellte Signalbehandlung über SIG_DFL behandelt wird (siehe signal()). (Ende)

Es können bis zu 40 Funktionen registriert werden.

Nach dem erfolgreichen Aufruf einer exec-Funktion sind die vorher mit atexit() registrierten Funktionen nicht mehr registriert.

Returnwert

0

bei erfolgreicher Registrierung der Funktion.

 

!= 0

bei Fehler.

Hinweise

Damit alle registrierten Funktionen aufgerufen werden, muss der Anwender sicherstellen, dass registrierte Funktionen zurückkehren.

Die Funktion sysconf() liefert den Wert von ATEXIT_MAX zurück, der angibt, wie viele Funktionen insgesamt registriert werden können. Es gibt jedoch keine Möglichkeit (außer duch Mitzählen) herauszufinden, wie viele Funktionen bereits registriert wurden.

Siehe auch

at_quick_exit(), bs2exit(), exit(), signal(), stdlib.h.