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

NAZWA

       getpid, getppid - pobranie identyfikatora procesu

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <unistd.h>

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

OPIS

       getpid()  zwraca  identyfikator procesu (PID) wywołującego. (Jest to często wykorzystywane
       przez funkcje generujące unikatowe nazwy plików tymczasowych).

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

BŁĘDY

       Funkcje te zawsze kończą się pomyślnie.

STANDARDY

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

UWAGI

       Jeśli rodzic wywołującego jest w innej  przestrzeni  nazw  PID  (zob.  pid_namespaces(7)),
       getppid() zwraca 0.

       From  a  kernel  perspective,  the  PID  (which  is  shared  by  all  of  the threads in a
       multithreaded process)  is sometimes also known as  the  thread  group  ID  (TGID).   This
       contrasts  with  the kernel thread ID (TID), which is unique for each thread.  For further
       details, see gettid(2)  and the discussion of the CLONE_THREAD flag in clone(2).

   Różnice biblioteki C/jądra
       From glibc 2.3.4 up to and including glibc 2.24, the glibc wrapper function  for  getpid()
       cached  PIDs,  with  the  goal  of  avoiding  additional system calls when a process calls
       getpid()  repeatedly.  Normally this caching was  invisible,  but  its  correct  operation
       relied  on  support  in  the  wrapper functions for fork(2), vfork(2), and clone(2): if an
       application bypassed the glibc wrappers for these system calls by using syscall(2), then a
       call  to  getpid()   in  the  child  would return the wrong value (to be precise: it would
       return the PID of the parent process).  In  addition,  there  were  cases  where  getpid()
       could  return the wrong value even when invoking clone(2)  via the glibc wrapper function.
       (For a discussion of one such case, see BUGS in clone(2).)  Furthermore, the complexity of
       the caching code had been the source of a few bugs within glibc over the years.

       Because  of the aforementioned problems, since glibc 2.25, the PID cache is removed: calls
       to getpid()  always invoke the actual system call, rather than returning a cached value.

       On Alpha, instead of a pair of getpid()  and getppid()  system calls, a  single  getxpid()
       system  call  is provided, which returns a pair of PID and parent PID.  The glibc getpid()
       and getppid()  wrapper functions  transparently  deal  with  this.   See  syscall(2)   for
       details regarding register mapping.

ZOBACZ TAKŻE

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

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony   podręcznika   są:   Przemek   Borys
       <pborys@dione.ids.pl>,    Robert    Luberda    <robert@debian.org>    i    Michał   Kułach
       <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe  informacje  o  warunkach  licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  lub  nowszej.  Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.