Provided by: manpages-pl-dev_4.15.0-9_all bug

NAZWA

       getpid, getppid - pobranie identyfikatora procesu

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.

ZGODNE Z

       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 version 2.3.4 up to and including version 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  version  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)

O STRONIE

       Angielska  wersja  tej  strony  pochodzi  z  wydania  5.13  projektu Linux man-pages. Opis
       projektu, informacje dotyczące zgłaszania błędów oraz  najnowszą  wersję  oryginału  można
       znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

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