getpid(2) System Calls Manual getpid(2) NUME getpid, getppid - obine identificatorul procesului BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include pid_t getpid(void); pid_t getppid(void); DESCRIERE getpid() returneaza identificatorul de proces (PID) al procesului apelant (acest lucru este adesea utilizat de rutinele care genereaza nume de fiiere temporare unice). getppid() returneaza identificatorul de proces al procesului parinte al procesului apelant. Acesta va fi fie identificatorul procesului care a creat acest proces cu ajutorul fork(), fie, daca acest proces s-a incheiat deja, identificatorul procesului caruia i-a fost reafiliat acest proces (fie init(1), fie un proces ,,subreaper" definit prin operaia prctl(2) PR_SET_CHILD_SUBREAPER).es). ERORI-IEIRE Aceste funcii au intotdeauna succes. VERSIUNI Pe Alpha, in loc de o pereche de apeluri de sistem getpid() i getppid(), este furnizat un singur apel de sistem getxpid(), care returneaza o pereche de PID i PID parinte. Funciile de invaluire getpid() i getppid() ale glibc se ocupa in mod transparent de acest lucru. A se vedea syscall(2) pentru detalii privind machetarea registrelor. STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001, 4.3BSD, SVr4. Diferene intre biblioteca C i nucleu De la glibc 2.3.4 i pana la glibc 2.24 inclusiv, funcia de invaluire glibc pentru getpid() a pus in memoria cache PID-urile, cu scopul de a evita apelurile de sistem suplimentare atunci cand un proces apela getpid() in mod repetat. In mod normal, aceasta memorare era invizibila, dar funcionarea sa corecta se baza pe suportul din funciile de invaluire pentru fork(2), vfork(2) i clone(2): daca o aplicaie ocolea funciile de invaluire glibc pentru aceste apeluri de sistem utilizand syscall(2), atunci un apel la getpid() in procesul copil ar returna o valoare greita (mai exact: ar returna PID-ul procesului parinte). In plus, au existat cazuri in care getpid() ar putea returna o valoare greita chiar i atunci cand se apela clone(2) prin intermediul funciei de invaluire glibc. (Pentru o discuie despre un astfel de caz, consultai ERORI in clone(2).) In plus, complexitatea codului de memorare in cache a fost sursa catorva erori in cadrul glibc de-a lungul anilor. Din cauza problemelor menionate mai sus, incepand cu glibc 2.25, memoria cache PID este eliminata: apelurile catre getpid() invoca intotdeauna apelul de sistem real, in loc sa returneze o valoare din memoria cache. NOTE Daca parintele apelantului se afla intr-un spaiu de nume PID diferit (a se vedea pid_namespaces(7)), getppid() returneaza 0. Din perspectiva nucleului, PID-ul (care este partajat de toate firele de execuie dintr-un proces cu mai multe fire de execuie) este uneori cunoscut i sub numele de identificatorul grupului de fire de execuie (TGID). Acest lucru contrasteaza cu identificatorul de fire de execuie din nucleu (TID), care este unic pentru fiecare fir de execuie. Pentru mai multe detalii, consultai gettid(2) i discuia despre fanionul CLONE_THREAD din clone(2). CONSULTAI 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 in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.9.1 2 mai 2024 getpid(2)