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

BEZEICHNUNG

       getpid, getppid - gibt die Prozessidentifikation zurück

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

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

STANDARDS

       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 Glibc 2.3.4 bis einschließlich 2.24 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 Glibc 2.25 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)

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