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

NUME

       getpid, getppid - obține identificatorul procesului

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <unistd.h>

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

DESCRIERE

       getpid()  returnează  identificatorul  de  proces  (PID)  al  procesului apelant (acest lucru este adesea
       utilizat de rutinele care generează nume de fișiere temporare unice).

       getppid() returnează identificatorul de proces al procesului părinte al procesului apelant.  Acesta va fi
       fie identificatorul procesului care a creat acest proces cu ajutorul fork(), fie, dacă acest  proces  s-a
       încheiat  deja,  identificatorul  procesului  căruia i-a fost reafiliat acest proces (fie init(1), fie un
       proces „subreaper” definit prin operația prctl(2) PR_SET_CHILD_SUBREAPER).es).

ERORI

       Aceste funcții au întotdeauna succes.

STANDARDE

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

NOTE

       Dacă părintele apelantului se află într-un spațiu de nume PID diferit  (a  se  vedea  pid_namespaces(7)),
       getppid() returnează 0.

       Din  perspectiva nucleului, PID-ul (care este partajat de toate firele de execuție dintr-un proces cu mai
       multe fire de execuție) este uneori cunoscut și  sub  numele  de  identificatorul  grupului  de  fire  de
       execuție  (TGID).  Acest lucru contrastează cu identificatorul de fire de execuție din nucleu (TID), care
       este unic pentru fiecare fir de execuție.  Pentru mai multe detalii,  consultați  gettid(2)  și  discuția
       despre fanionul CLONE_THREAD din clone(2).

   Diferențe între biblioteca C și nucleu
       De  la  glibc  2.3.4  și până la glibc 2.24 inclusiv, funcția de învăluire glibc pentru getpid() a pus în
       memoria cache PID-urile, cu scopul de a evita apelurile de sistem  suplimentare  atunci  când  un  proces
       apela  getpid()  în  mod  repetat.   În  mod normal, această memorare era invizibilă, dar funcționarea sa
       corectă se baza pe suportul din funcțiile de învăluire pentru  fork(2),  vfork(2)  și  clone(2):  dacă  o
       aplicație  ocolea  funcțiile  de  învăluire  glibc  pentru aceste apeluri de sistem utilizând syscall(2),
       atunci un apel la getpid() în procesul copil ar returna o valoare greșită (mai exact: ar  returna  PID-ul
       procesului  părinte).   În  plus,  au  existat cazuri în care getpid() ar putea returna o valoare greșită
       chiar și atunci când se apela clone(2) prin intermediul funcției de învăluire glibc.  (Pentru o  discuție
       despre  un  astfel  de caz, consultați ERORI in clone(2).)  În plus, complexitatea codului de memorare în
       cache a fost sursa câtorva erori în cadrul glibc de-a lungul anilor.

       Din cauza problemelor menționate mai sus, începând cu glibc  2.25,  memoria  cache  PID  este  eliminată:
       apelurile  către  getpid()  invocă  întotdeauna  apelul de sistem real, în loc să returneze o valoare din
       memoria cache.

       Pe Alpha, în loc de o pereche de apeluri de sistem getpid() și getppid(), este furnizat un singur apel de
       sistem getxpid(), care returnează o pereche de PID și PID părinte.  Funcțiile de  învăluire  getpid()  și
       getppid()  ale  glibc  se  ocupă în mod transparent de acest lucru.  A se vedea syscall(2) pentru detalii
       privind machetarea registrelor.

CONSULTAȚI ȘI

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

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   creată   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  Nicio
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.03                  22 ianuarie 2023                                       getpid(2)