Provided by: manpages-de-dev_4.21.0-2_all bug

BEZEICHNUNG

       _exit, _Exit - beendet den aufrufenden Prozess

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <unistd.h>

       [[noreturn]] void _exit(int status);

       #include <stdlib.h>

       [[noreturn]] void _Exit(int status);

   Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

       _Exit():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

BESCHREIBUNG

       _exit  beendet  den  aufrufenden  Prozess  »sofort«.  Alle  zum Prozess gehörenden offenen
       Datei-Deskriptoren werden geschlossen.  Alle  Kindprozesse  dieses  Prozesses  werden  von
       init(1)  geerbt  (oder  vom  nächsten  »subreaper«-Prozess,  der  durch die Verwendung der
       PR_SET_CHILD_SUBREAPER-Aktion mittels prctl(2) festgelegt wird).  Dem  Elternprozess  wird
       ein SIGCHLD-Signal gesandt.

       Der  Wert  status  &  0xFF  wird  als  Exit-Status  des  Prozesses  an  den  Elternprozess
       zurückgegeben und kann durch  den  Elternprozess  mit  einem  Aufruf  der  wait(2)-Familie
       ermittelt werden.

       Die Funktion _Exit() entspricht _exit().

RÜCKGABEWERT

       Diese Funktionen kehren nicht zurück.

STANDARDS

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. Die Funktion _Exit() wurde in C99 eingeführt.

ANMERKUNGEN

       Für  eine  Diskussion  über  die Auswirkungen eines Exit, die Übertragung des Exit-Status,
       Zombieprozesse, gesendete Signale, usw. lesen Sie exit(3).

       Die Funktion _exit() ist exit(3) ähnlich, ruft aber keine mit  atexit(3)  oder  on_exit(3)
       registrierten Funktionen auf. Geöffnete stdio(3)-Ströme werden nicht geleert. Andererseits
       schließt _exit() offene Datei-Deskriptoren und dies könnte beim  Warten  auf  das  Beenden
       ausstehender   Ausgaben  eine  nicht  vorhersehbare  Verzögerung  verursachen.  Falls  die
       Verzögerung nicht erwünscht ist, kann es  nützlich  sein,  vor  dem  Aufruf  von  _exit(),
       Funktionen  wie tcflush(3) aufzurufen. Ob irgend eine ausstehende E/A abgebrochen wird und
       welche ausstehende E/A per _exit abgebrochen wird, hängt von der Implementierung ab.

   Unterschiede C-Bibliothek/Kernel
       Der oben in BESCHREIBUNG dargestellte Text beschreibt  die  traditionelle  Auswirkung  von
       _exit(),  die  darin  besteht, einen Prozess zu beenden, und die in POSIX.1 spezifizierten
       Semantiken, die durch die  Wrapper-Funktion  implementiert  sind.  Auf  modernen  Systemen
       bedeutet dies die Beendigung aller Threads in dem Prozess.

       Im  Kontrast  zur  C-Bibliotheks-Wrapperfunktion beendet der rohe Systemaufruf _exit() nur
       den aufrufenden Thread und Aktionen, wie Kindprozesse,  die  einen  anderen  Elternprozess
       auswählen  oder das Senden von SIGCHLD an den Elternprozess werden nur durchgeführt, falls
       dies der letzte Thread in der Thread-Gruppe ist.

       Bis Glibc 2.3 rief die Wrapper-Funktion _exit() den gleichnamigen Kernel-Systemaufruf auf.
       Seit  Glibc 2.3 ruft die Wrapper-Funktion exit_group(2) auf, um alle Ausführungsstränge in
       einem Prozess zu beenden.

SIEHE AUCH

       execve(2), exit_group(2), fork(2),  kill(2),  wait(2),  wait4(2),  waitpid(2),  atexit(3),
       exit(3), on_exit(3), termios(3)

ÜBERSETZUNG

       Die    deutsche    Übersetzung    dieser    Handbuchseite   wurde   von   Martin   Schulze
       <joey@infodrom.org>,   Chris   Leick   <c.leick@vollbio.de>,    Dr.    Tobias    Quathamer
       <toddy@debian.org> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die GNU General Public License
       Version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 die Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.