.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified 1993-03-29, David Metcalfe .\" Modified 1993-07-24, Rik Faith (faith@cs.unc.edu) .\" Modified 2003-10-25, Walter Harms .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH atexit 3 "5. Februar 2023" "Linux man\-pages 6.03" .SH BEZEICHNUNG atexit \- legt eine Funktion fest, die beim normalen Programmende aufgerufen wird .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .PP \fBint atexit(void (*\fP\fIFunktion\fP\fB)(void));\fP .fi .SH BESCHREIBUNG Die Funktion \fBatexit\fP() legt fest, dass die angegebene \fIFunktion\fP bei normalem Programmende aufgerufen wird, also wenn entweder \fBexit\fP(3) aufgerufen wird oder das Programm aus seiner \fBmain\fP\-Funktion zurückkehrt. Funktionen, die so festgelegt sind, werden in umgekehrter Reihenfolge ihrer Registrierung aufgerufen; es werden keine Argumente übergeben. .PP Die gleiche Funktion kann mehrfach registriert werden: sie wird einmal für jede Registrierung aufgerufen. .PP .\" POSIX.1-2001, POSIX.1-2008 POSIX.1 verlangt, dass eine Implementierung mindestens \fBATEXIT_MAX\fP (32) solcher Funktionen registrieren kann. Die tatsächlich durch eine Implementierung unterstützte Grenze können Sie mit \fBsysconf\fP(3) ermitteln. .PP Wenn mittels \fBfork\fP(2) ein Kindprozess erstellt wird, erbt er Kopien der Registrierungen seines Elternprozesses. Nach einem erfolgreichen Aufruf einer der \fBexec\fP(3)\-Funktionen werden alle Registrierungen entfernt. .SH RÜCKGABEWERT Die Funktion \fBatexit\fP() gibt bei Erfolg 0 zurück; anderenfalls wird ein von Null verschiedener Wert zurückgegeben. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .ad l .nh .TS allbox; lbx lb lb l l l. Schnittstelle Attribut Wert T{ \fBatexit\fP() T} Multithread\-Fähigkeit MT\-Safe .TE .hy .ad .sp 1 .SH STANDARDS POSIX.1\-2001, POSIX.1\-2008, C99, SVr4, 4.3BSD. .SH ANMERKUNGEN Unter Verwendung von \fBatexit\fP() (und \fBon_exit\fP(3)) registrierte Funktionen werden nicht aufgerufen, wenn die Prozesse wegen eines Signals nicht normal beendet werden. .PP Wenn eine der registrierten Funktionen \fB_exit\fP(2) aufruft, dann werden jedwede noch verbleibende Funktionen nicht aufgerufen und die anderen von \fBexit\fP(3) durchzuführenden Schritte zur Beendigung des Prozesses werden nicht durchgeführt. .PP .\" POSIX.1-2001, POSIX.1-2008 .\" This can happen on OpenBSD 4.2 for example, and is documented .\" as occurring on FreeBSD as well. .\" glibc does "the Right Thing" -- invocation of the remaining .\" exit handlers carries on as normal. POSIX.1 legt das Verhalten bei mehrmaligem Aufruf von \fBexit\fP(3) (d.h. der Aufruf von \fBexit\fP(3) innerhalb einer mit \fBatexit\fP() registrierten Funktion) nicht fest. Auf manchen Systemen (aber nicht Linux) kann dies zu einer Endlosschleife führen. Portable Programme sollten \fBexit\fP(3) nicht innerhalb einer von \fBatexit\fP() registrierten Funktion aufrufen. .PP Die Funktionen \fBatexit\fP() und \fBon_exit\fP(3) registrieren Funktionen in der gleichen Liste. Wird ein Prozess normal beendet werden die registrierten Funktionen in der umgekehrten Reihenfolge ihrer Registrierung durch diese beiden Funktion aufgerufen (also die zuletzt registrierte Funktion zuerst). .PP .\" In glibc, things seem to be handled okay POSIX.1 legt das Verhalten nicht fest, wenn eine der mit \fBatexit\fP(3) registrierten Funktionen mittels \fBlongjmp\fP(3) beendet wird. .SS Linux\-Anmerkungen Seit Glibc 2.2.3 können \fBatexit\fP() (und \fBon_exit\fP(3)) zur Erzeugung von Funktionen einer dynamische Bibliothek verwendet werden, die aufgerufen werden, wenn die Bibliothek aus dem Speicher entfernt wird. .SH BEISPIELE .\" SRC BEGIN (atexit.c) .EX #include #include #include void bye(void) { printf("Das war alles, Leute\en"); } int main(void) { long a; int i; a = sysconf(_SC_ATEXIT_MAX); printf("ATEXIT_MAX = %ld\en", a); i = atexit(bye); if (i != 0) { fprintf(stderr, "Funktion für Programmschluss kann nicht gesetzt werden\en"); exit(EXIT_FAILURE); } exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "SIEHE AUCH" \fB_exit\fP(2), \fBdlopen\fP(3), \fBexit\fP(3), \fBon_exit\fP(3) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother und Martin Eberhard Schauer erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .