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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.