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>.

Linux                                           14. Februar 2013                                         EXIT(3)