Provided by: manpages-de-dev_0.10-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.

       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

       Diese   Seite   ist   Teil   der  Veröffentlichung  3.32  des  Projekts
       Linux-man-pages. Eine Beschreibung des Projekts und Informationen,  wie
       Fehler     gemeldet     werden     können,     finden     sich    unter
       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>.