.\" -*- coding: UTF-8 -*- .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getpid 2 "30 martie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME getpid, getppid \- obține identificatorul procesului .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBpid_t getpid(void);\fP \fBpid_t getppid(void);\fP .fi .SH DESCRIERE \fBgetpid\fP() returnează identificatorul de proces (PID) al procesului apelant (acest lucru este adesea utilizat de rutinele care generează nume de fișiere temporare unice). .PP \fBgetppid\fP() returnează identificatorul de proces al procesului părinte al procesului apelant. Acesta va fi fie identificatorul procesului care a creat acest proces cu ajutorul \fBfork\fP(), fie, dacă acest proces s\-a încheiat deja, identificatorul procesului căruia i\-a fost reafiliat acest proces (fie \fBinit\fP(1), fie un proces „subreaper” definit prin operația \fBprctl\fP(2) \fBPR_SET_CHILD_SUBREAPER\fP).es). .SH ERORI\-IEȘIRE Aceste funcții au întotdeauna succes. .SH VERSIUNI Pe Alpha, în loc de o pereche de apeluri de sistem \fBgetpid\fP() și \fBgetppid\fP(), este furnizat un singur apel de sistem \fBgetxpid\fP(), care returnează o pereche de PID și PID părinte. Funcțiile de învăluire \fBgetpid\fP() și \fBgetppid\fP() ale glibc se ocupă în mod transparent de acest lucru. A se vedea \fBsyscall\fP(2) pentru detalii privind machetarea registrelor. .SH STANDARDE POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001, 4.3BSD, SVr4. .SS "Diferențe între biblioteca C și nucleu" .\" The following program demonstrates this "feature": .\" .\" #define _GNU_SOURCE .\" #include .\" #include .\" #include .\" #include .\" #include .\" #include .\" .\" int .\" main(int argc, char *argv[]) .\" { .\" /* The following statement fills the getpid() cache */ .\" .\" printf("parent PID = %ld\n", (intmax_t) getpid()); .\" .\" if (syscall(SYS_fork) == 0) { .\" if (getpid() != syscall(SYS_getpid)) .\" printf("child getpid() mismatch: getpid()=%jd; " .\" "syscall(SYS_getpid)=%ld\n", .\" (intmax_t) getpid(), (long) syscall(SYS_getpid)); .\" exit(EXIT_SUCCESS); .\" } .\" wait(NULL); .\"} De la glibc 2.3.4 și până la glibc 2.24 inclusiv, funcția de învăluire glibc pentru \fBgetpid\fP() a pus în memoria cache PID\-urile, cu scopul de a evita apelurile de sistem suplimentare atunci când un proces apela \fBgetpid\fP() î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 \fBfork\fP(2), \fBvfork\fP(2) și \fBclone\fP(2): dacă o aplicație ocolea funcțiile de învăluire glibc pentru aceste apeluri de sistem utilizând \fBsyscall\fP(2), atunci un apel la \fBgetpid\fP() î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 \fBgetpid\fP() ar putea returna o valoare greșită chiar și atunci când se apela \fBclone\fP(2) prin intermediul funcției de învăluire glibc. (Pentru o discuție despre un astfel de caz, consultați ERORI in \fBclone\fP(2).) În plus, complexitatea codului de memorare în cache a fost sursa câtorva erori în cadrul glibc de\-a lungul anilor. .PP .\" commit c579f48edba88380635ab98cb612030e3ed8691e .\" https://sourceware.org/glibc/wiki/Release/2.25#pid_cache_removal .\" FIXME . .\" Review progress of https://bugzilla.redhat.com/show_bug.cgi?id=1469757 Din cauza problemelor menționate mai sus, începând cu glibc 2.25, memoria cache PID este eliminată: apelurile către \fBgetpid\fP() invocă întotdeauna apelul de sistem real, în loc să returneze o valoare din memoria cache. .SH NOTE Dacă părintele apelantului se află într\-un spațiu de nume PID diferit (a se vedea \fBpid_namespaces\fP(7)), \fBgetppid\fP() returnează 0. .PP 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 \fBgettid\fP(2) și discuția despre fanionul \fBCLONE_THREAD\fP din \fBclone\fP(2). .SH "CONSULTAȚI ȘI" \fBclone\fP(2), \fBfork\fP(2), \fBgettid\fP(2), \fBkill\fP(2), \fBexec\fP(3), \fBmkstemp\fP(3), \fBtempnam\fP(3), \fBtmpfile\fP(3), \fBtmpnam\fP(3), \fBcredentials\fP(7), \fBpid_namespaces\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .