noble (2) getppid.2.gz

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