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