Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       exit - ein normales Prozessende veranlassen

ÜBERSICHT

       #include <stdlib.h>

       void exit(int status);

BESCHREIBUNG

       Die  Funktion  exit()  veranlasst  ein normales Prozessende und gibt den Wert von status &
       0377 an den Elternprozess zurück (siehe wait(2)).

       Die mit atexit(3) und  on_exit(3)  registrierten  Funktionen  werden  in  der  umgekehrten
       Reihenfolge  ihrer  Registrierung  aufgerufen.  (Eine  solche Funktion kann atexit(3) oder
       on_exit(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 _exit(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 stdio(3)-Datenströmen) wird abgebrochen. Falls
       eine Funktion mehrmals mit atexit(3) oder on_exit(3) registriert wurde, dann wird  sie  so
       oft aufgerufen, wie sie registriert wurde.

       Alle  offenen  stdio(3)-Datenströme  werden  geleert  und  geschlossen.  Durch  tmpfile(3)
       erzeugte Dateien werden entfernt.

       Der C-Standard spezifiziert zwei Konstanten, EXIT_SUCCESS und EXIT_FAILURE, die an  exit()
       übergeben werden und ein erfolgreiches beziehungsweise erfolgloses Beenden anzeigen.

RÜCKGABEWERT

       Die Funktion exit() kehrt nichts zurück.

KONFORM ZU

       SVr4, 4.3BSD, POSIX.1-2001, C89, C99.

ANMERKUNGEN

       Es   ist   undefiniert,  was  geschieht,  wenn  eine  der  mit  atexit(3)  und  on_exit(3)
       registrierten Funktionen exit() oder longjmp(3) aufruft. Beachten Sie, dass ein Aufruf von
       execve(2) die mittels atexit(3) und on_exit(3) erstellten Registrierungen entfernt.

       EXIT_SUCCESS    und    EXIT_FAILURE    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.

       BSD versuchte, die Exit-Codes zu standardisieren; siehe die Datei <sysexits.h>.

       Nach exit() muss der Exit-Status an den Elternprozess übertragen werden. Dabei werden drei
       Fälle  unterschieden.  Falls  beim  Elternprozess  SA_NOCLDWAIT  gesetzt  ist   oder   die
       SIGCHLD-Behandlungsroutine  auf SIG_IGN gesetzt wurde, wird der Status verworfen. Wenn der
       Elternprozess auf den Kindprozess wartete, wird er über den Exit-Status benachrichtigt. In
       beiden  Fällen  »stirbt«  der  Prozess,  der beendet wird, sofort. Falls der Elternprozess
       nicht angezeigt hat, dass er nicht am Exit-Status  interessiert  ist,  aber  nicht  darauf
       wartet, dann wird der zu beendende Prozess in einen »Zombieprozess« verwandelt (was nichts
       anderes ist, als ein Behälter für einen einzelnen Wert,  den  Exit-Status),  so  dass  der
       Elternprozess  den  Exit-Status erfahren kann, indem er später eine der wait(2)-Funktionen
       aufruft.

       Wenn die Implementation  das  Signal  SIGCHLD  unterstützt,  wird  dieses  Signal  an  den
       Elternprozess  gesandt.  Falls  der  Elternprozess  SA_NOCLDWAIT  gesetzt  hat,  ist nicht
       definiert, ob ein SIGCHLD gesandt wird.

       Falls der 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 SIGHUP-Signal  gesandt  und  das
       Terminal  wird  von  dieser  Sitzung  gelöst,  was  ermöglicht,  dass  es  von einem neuen
       steuernden Prozess übernommen wird.

       Falls das Beenden des Prozesses das Verwaisen einer  Prozessgruppe  verursacht  und  jedes
       Mitglied  der neu verwaisten Gruppe gestoppt wird, dann wird ein SIGHUP-Signal gefolgt von
       einem  SIGCONT-Signal  an  jeden  Prozess  in  dieser  Prozessgruppe  gesandt.  Lesen  Sie
       setpgid(2), wenn Sie eine Erläuterung verwaister Prozessgruppen suchen.

SIEHE AUCH

       _exit(2), setpgid(2), wait(2), atexit(3), on_exit(3), tmpfile(3)

KOLOPHON

       This  page  is  part  of release 3.54 of the Linux man-pages project. A description of the
       project,    and    information    about    reporting    bugs,    can    be    found     at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die    deutsche    Übersetzung    dieser    Handbuchseite    wurde    von   Stefan   Janke
       <gonzo@burg.studfb.unibw-muenchen.de> und Chris Leick <c.leick@vollbio.de> 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 <debian-l10n-german@lists.debian.org>.