.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2001 Andries Brouwer . .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" FIXME . There are a lot of other process termination actions that .\" could be listed on this page. See, for example, the list in the .\" POSIX exit(3p) page. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH exit 3 "20. Juli 2023" "Linux man\-pages 6.05.01" .SH BEZEICHNUNG exit \- ein normales Prozessende veranlassen .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .PP \fB[[noreturn]] void exit(int \fP\fIstatus\fP\fB);\fP .fi .SH BESCHREIBUNG Die Funktion \fBexit\fP() veranlasst ein normales Prozessende und gibt das niederwertigste Byte von \fIstatus\fP (d.h. \fIstatus & 0xFF\fP) an den Elternprozess zurück (siehe \fBwait\fP(2)). .PP Die mit \fBatexit\fP(3) und \fBon_exit\fP(3) registrierten Funktionen werden in der umgekehrten Reihenfolge ihrer Registrierung aufgerufen. (Eine solche Funktion kann \fBatexit\fP(3) oder \fBon_exit\fP(3) aufrufen, um eine zusätzliche Funktion zu registrieren, die während des Exit\-Prozesses ausgeführt wird; die neue Registrierung wird am Anfang der Liste verbleibender Funktionen hinzugefügt, die noch aufgerufen werden.) Wenn eine dieser Funktionen nicht zurückkehrt (z.B. wenn sie \fB_exit\fP(2) aufruft oder sich selbst mit einem Signal beendet), dann wird keine der verbleibenden Funktionen aufgerufen und die weitere Exit\-Ausführung (insbesondere Leeren von \fBstdio\fP(3)\-Datenströmen) wird abgebrochen. Falls eine Funktion mehrmals mit \fBatexit\fP(3) oder \fBon_exit\fP(3) registriert wurde, dann wird sie so oft aufgerufen, wie sie registriert wurde. .PP Alle offenen \fBstdio\fP(3)\-Datenströme werden geleert und geschlossen. Durch \fBtmpfile\fP(3) erzeugte Dateien werden entfernt. .PP Der C\-Standard spezifiziert zwei Konstanten, \fBEXIT_SUCCESS\fP und \fBEXIT_FAILURE\fP, die an \fBexit\fP() übergeben werden und ein erfolgreiches beziehungsweise erfolgloses Beenden anzeigen. .SH RÜCKGABEWERT Die Funktion \fBexit\fP() kehrt nichts zurück. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lbx lb lb l l l. Schnittstelle Attribut Wert T{ .na .nh \fBexit\fP() T} Multithread\-Fähigkeit MT\-Unsicher race:exit .TE .sp 1 .PP Die Funktion \fBexit\fP() verwendet eine globale Variable, die nicht geschützt ist, daher ist sie nicht multithread\-fähig. .SH STANDARDS C11, POSIX.1\-2008. .SH GESCHICHTE C89, POSIX.1\-2001, SVr4, 4.3BSD. .SH ANMERKUNGEN Das Verhalten ist undefiniert, wenn eine der mit \fBatexit\fP(3) und \fBon_exit\fP(3) registrierten Funktionen \fBexit\fP() oder \fBlongjmp\fP(3) aufruft. Beachten Sie, dass ein Aufruf von \fBexecve\fP(2) die mittels \fBatexit\fP(3) und \fBon_exit\fP(3) erstellten Registrierungen entfernt. .PP \fBEXIT_SUCCESS\fP und \fBEXIT_FAILURE\fP zu benutzen ist etwas portierbarer (auf Nicht\-UNIX\-Umgebungen), als 0 und einen Wert ungleich Null wie 1 oder \-1 zu verwenden. Insbesondere VMS hat andere Konventionen. .PP BSD versuchte, die Exit\-Codes zu standardisieren (was durch einige C\-Bibliotheken wie die GNU\-C\-Bibliothek auch übernommen wurde); siehe die Datei \fI\fP. .PP Nach \fBexit\fP() muss der Exit\-Status an den Elternprozess übertragen werden. Es gibt drei Fälle: .IP \[bu] 3 Falls der Elternprozess \fBSA_NOCLDWAIT\fP oder den Handler \fBSIGCHLD\fP auf \fBSIG_IGN\fP gesetzt hat, wird der Status verworfen und das Kind stirbt sofort. .IP \[bu] Falls der Elternprozess auf das Kind wartete, wird er über den Exit\-Status benachrichtigt und das Kind stirbt sofort. .IP \[bu] Andernfalls wird das Kind ein »Zombie«\-Prozess: die meisten der Ressourcen des Prozessen werden neu genutzt, aber eine Position, die minimale Informationen über den Kindprozess (Beendigungstatus, Ressourcenverwendungsstatistik) enthält, wird in der Prozesstabelle beibehalten. Dies erlaubt es Elternprozessen, nachfolgend \fBwaitpid\fP(2) (oder ähnliches) zu verwenden, um den Beendigungsstatus des Kindprozesses zu erfahren; zu diesem Zeitpunkt wird die Zombiprozessposition freigegeben. .PP .\" Wenn die Implementation das Signal \fBSIGCHLD\fP unterstützt, wird dieses Signal an den Elternprozess gesandt. Falls der Elternprozess \fBSA_NOCLDWAIT\fP gesetzt hat, ist nicht definiert, ob ein \fBSIGCHLD\fP gesandt wird. .SS "An andere Prozesse gesandte Signale" Falls der beendende Prozess der führende Prozess der Sitzung ist und sein steuerndes Terminal das steuernde Terminal der Sitzung ist, dann wird jedem Prozess in der Vordergrund\-Prozessgruppe dieses steuernden Terminals ein \fBSIGHUP\fP\-Signal gesandt und das Terminal wird von dieser Sitzung gelöst, was ermöglicht, dass es von einem neuen steuernden Prozess übernommen wird. .PP Falls das Beenden des Prozesses das Verwaisen einer Prozessgruppe verursacht und jedes Mitglied der neu verwaisten Gruppe gestoppt wird, dann wird ein \fBSIGHUP\fP\-Signal gefolgt von einem \fBSIGCONT\fP\-Signal an jeden Prozess in dieser Prozessgruppe gesandt. Lesen Sie \fBsetpgid\fP(2), wenn Sie eine Erläuterung verwaister Prozessgruppen suchen. .PP Außer in den obigen Fällen, bei denen der signalisierte Prozess ein Kind des beendenden Prozesses sein könnte, führt das Beenden von Prozesse im allgemeinen \fInicht\fP dazu, dass ein Signal an die Kinder des Prozesses gesandt wird. Allerdings kann ein Prozess die Aktion \fBprctl\fP(2) \fBPR_SET_PDEATHSIG\fP verwenden, damit es ein Signal bekommt, wenn sein Elternprozess sich beendet. .SH "SIEHE AUCH" \fB_exit\fP(2), \fBget_robust_list\fP(2), \fBsetpgid\fP(2), \fBwait\fP(2), \fBatexit\fP(3), \fBon_exit\fP(3), \fBtmpfile\fP(3) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Stefan Janke , Chris Leick und Helge Kreutzmann 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 .