table of contents
- bullseye 4.10.0-1
- bullseye-backports 4.18.1-1~bpo11+1
- testing 4.18.1-1
- unstable 4.18.1-1
_EXIT(2) | Linux-Programmierhandbuch | _EXIT(2) |
BEZEICHNUNG¶
_exit, _Exit - beendet den aufrufenden Prozess
ÜBERSICHT¶
#include <unistd.h>
void _exit(int status);
#include <stdlib.h>
void _Exit(int status);
_Exit():
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.
KONFORM ZU¶
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¶
In Glibc bis einschließlich Version 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. (Der rohe Systemaufruf _exit() beendet alle aufrufenden Ausführungsstränge.)
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)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können, sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
Ü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 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.
9. Februar 2020 | Linux |