Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       getpid, getppid - gibt die Prozessidentifikation zurück

ÜBERSICHT

       #include <sys/types.h>
       #include <unistd.h>

       pid_t getpid(void);
       pid_t getppid(void);

BESCHREIBUNG

       getpid()  gibt  die  Prozesskennung  (PID)  des aufrufenden Prozesses zurück. (Dies wird oft von Routinen
       benutzt, die einen eindeutigen Namen einer temporären Datei erzeugen.)

       getppid() liefert die Prozesskennung des Elternprozesses des  aufrufenden  Prozesses  zurück.  Dies  wird
       entweider  die  Kennung  des  Prozesses,  der diesen Prozess mittels fork() erstellte, oder, falls dieser
       Prozess bereits beendet wurde, die Kennung des Prozesses, an der neue Elternprozess  für  diesen  Prozess
       geworden  ist  (entweder  init(1) oder ein mittels der Aktion prctl(2) PR_SET_CHILD_SUBREAPER definierter
       »subreaper«-Prozess).

FEHLER

       Diese Funktionen sind immer erfolgreich.

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, 4.3BSD, SVr4.

ANMERKUNGEN

       Falls sich der Elternprozess des aufrufenden Prozesses in einem anderen  PID-Namensraum  befindet  (siehe
       pid_namespaces(7)), gibt getppid() 0 zurück.

       Aus  der  Sicht  des  Kernels  ist  die PID (die sich alle Threads in einem Multithreaded-Prozess teilen)
       manchmal auch als Thread-Gruppenkennung (TGID) bekannt. Dies steht im Gegensatz zu der Kernel  Thread  ID
       (TID),  die  für  jeden  Thread eindeutig ist. Für weitere Details siehe gettid(2) und die Diskussion des
       Schalters CLONE_THREAD in clone(2).

   Unterschiede C-Bibliothek/Kernel
       Von Version 2.3.4 bis einschließlich Version 2.24 der Glibc  speicherte  die  Glibc-Wrapper-Funktion  für
       getpid()  PIDs  temporär,  um  zusätzliche Systemaufrufe zu vermeiden, wenn ein Prozess getpid() mehrmals
       aufruft. Normalerweise war dieses Zwischenspeichern  nicht  sichtbar,  aber  das  korrekte  Funktionieren
       beruhte  auf  der  Unterstützung  in den Wrapper-Funktionen für fork(2), vfork(2) und clone(2): Wenn eine
       Anwendung die Glibc-Wrapper für diese Systemaufrufe durch Benutzung von syscall(2) umging, dann würde ein
       Aufruf von getpid() im Kindprozess den falschen Wert zurückliefern (um es zu präzisieren: Er wird die PID
       des Elternprozesses zurückgeben). Zusätzlich gab es Fälle, bei dem getpid() den falschen Wert sogar  dann
       zurückgab,  wenn  clone(2)  über  die Glibc-Wrapper-Funktion aufgerufen wurde. (Für die Besprechung eines
       solchen Falles siehe FEHLER in clone(2).) Desweiteren war die Komplexität des Zwischenspeichercodes  über
       die Jahre eine Quelle mehrerer Fehler innerhalb der Glibc.

       Aufgrund der vorgenannten Probleme ist der PID-Zwischenspeichercode seit Version 2.25 der Glibc entfernt;
       Aufrufe von getpid() lösen immer den tatsächlichen Systemaufruf aus,  statt  einen  zwischengespeicherten
       Wert zurückzuliefern.

       Unter  Alpha wird statt eines Paars von getpid()- und getppid()-Systemaufrufen ein einzelner Systemaufruf
       getxpid()  bereitgestellt,  der  ein  Paar   von   realen   und   effektiven   PIDs   bereitstellt.   Die
       Glibc-Wrapper-Funktionen  getpid() und getppid() gehen damit transparent um. Siehe syscall(2) für Details
       im Hinblick auf Registerabbildungen.

SIEHE AUCH

       clone(2),  fork(2),  gettid(2),  kill(2),  exec(3),  mkstemp(3),   tempnam(3),   tmpfile(3),   tmpnam(3),
       credentials(7), pid_namespaces(7)

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  Stefan  Janke  <gonzo@burg.studfb.unibw-
       muenchen.de>, Chris Leick  <c.leick@vollbio.de>,  Mario  Blättermann  <mario.blaettermann@gmail.com>  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⟩.