Provided by: manpages-de-dev_2.5-1_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  Prozess-ID (PID) des aufrufenden Prozesses zurück. (Dies wird oft von
       Routinen benutzt, die einen eindeutigen Namen einer temporären Datei erzeugen.)

       getppid()  returns the process ID of the parent of  the  calling  process.  This  will  be
       either  the  ID of the process that created this process using fork(), or, if that process
       has already terminated, the ID of the process to which this process  has  been  reparented
       (either init(1)  or a "subreaper" process defined via the prctl(2)  PR_SET_CHILD_SUBREAPER
       operation).

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-Gruppen-ID  (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.

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  4.15  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  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 <debian-l10n-german@lists.debian.org>.