Provided by: manpages-de-dev_4.19.0-7_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⟩.