Scroll to navigation

ON_EXIT(3) Linux-Programmierhandbuch ON_EXIT(3)

BEZEICHNUNG

on_exit - registriert eine Funktion für den Aufruf bei normalem Abschluss des Prozesses

ÜBERSICHT

#include <stdlib.h>
int on_exit(void (*function)(int, void *), void *arg);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

on_exit():


Seit Glibc 2.19:
_DEFAULT_SOURCE
Glibc 2.19 und älter:
_BSD_SOURCE

BESCHREIBUNG

Die Funktion on_exit() registriert die angegebene Funktion function, damit diese bei normaler Prozessbeendigung aufgerufen wird. Also durch exit(3) oder nach Verlassen der main-Funktion des Programms. Der Funktion function wird das Argument status des letzten Aufrufes von exit(3) und das Argument arg von on_exit() übergeben.

Die gleiche Funktion kann mehrfach registriert werden: sie wird einmal für jede Registrierung aufgerufen.

Wenn mittels fork(2) ein Kindprozess erstellt wird, erbt er Kopien der Registrierungen seines Elternprozesses. Nach einem erfolgreichen Aufruf einer der exec(3)-Funktionen werden alle Registrierungen entfernt.

RÜCKGABEWERT

Die Funktion on_exit() gibt im Erfolgsfall 0 zurück, anderenfalls ist der Rückgabewert ungleich 0.

ATTRIBUTE

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

Schnittstelle Attribut Wert
on_exit() Multithread-Fähigkeit MT-Safe

KONFORM ZU

Diese Funktion stammt aus SunOS 4, ist aber auch in der Glibc vorhanden. Sie tritt nicht mehr in Solaris (SunOS 5) auf. Portierbare Anwendungen sollten diese Funktion meiden; verwenden Sie stattdessen die Standardfunktion atexit(3).

ANMERKUNGEN

Zum Zeitpunkt der Ausführung von function könnten Stack-Variablen (auto) bereits den Geltungsbereich verlassen haben. Daher sollte arg kein Zeiger auf eine Stack-Variable sein; er kann allerdings ein Zeiger auf eine Heap-Variable oder eine globale Variable sein.

SIEHE AUCH

_exit(2), atexit(3), exit(3)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 5.13 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Stefan Janke <gonzo@burg.studfb.unibw-muenchen.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

22. März 2021 GNU