getrusage(2) System Calls Manual getrusage(2) NUME getrusage - obine informaii despre utilizarea resurselor BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include int getrusage(int who, struct rusage *usage); DESCRIERE getrusage() returneaza masurile de utilizare a resurselor pentru who, care pot fi una dintre urmatoarele: RUSAGE_SELF Returneaza statisticile de utilizare a resurselor pentru procesul apelant, care reprezinta suma resurselor utilizate de toate firele din proces. RUSAGE_CHILDREN Returneaza statistici privind utilizarea resurselor pentru toi copiii procesului apelant care s-au incheiat i au fost ateptai. Aceste statistici vor include resursele utilizate de nepoi i de descendenii indepartai ulterior, in cazul in care toi descendenii care au intervenit i-au ateptat copiii care s-au incheiat. RUSAGE_THREAD (incepand cu Linux 2.6.26) Returneaza statisticile de utilizare a resurselor pentru firul apelant. Macrocomanda de testare a caracteristicii _GNU_SOURCE trebuie definit (inainte de includerea fiierului de antet any) pentru a obine definiia acestei constante din . Utilizarile resurselor sunt returnate in structura indicata de usage, care are urmatoarea forma: struct rusage { struct timeval ru_utime; /* timpul CPU utilizat de utilizator */ struct timeval ru_stime; /* timpul CPU utilizat de sistem */ long ru_maxrss; /* dimensiunea maxima a setului rezident */ long ru_ixrss; /* dimensiunea integrala a memoriei partajate */ long ru_idrss; /* dimensiunea integrala a memoriei nepartajate */ long ru_isrss; /* dimensiune integrala a stivei nepartajate */ long ru_minflt; /* revendicari de pagina (defecte de pagina uoare) */ long ru_majflt; /* defecte de pagina (defecte de pagina grave) */ long ru_nswap; /* swaps */ long ru_inblock; /* operaii de intrare in bloc */ long ru_oublock; /* operaii de ieire in blocs */ long ru_msgsnd; /* mesaje IPC trimise */ long ru_msgrcv; /* mesaje IPC primite */ long ru_nsignals; /* semnale primite */ long ru_nvcsw; /* schimbari voluntare de context */ long ru_nivcsw; /* schimbari involuntare de context */ }; Nu toate campurile sunt completate; campurile neintreinute sunt puse la zero de catre nucleu; (campurile neintreinute sunt furnizate pentru compatibilitate cu alte sisteme i pentru ca intr-o zi ar putea fi acceptate pe Linux). Campurile sunt interpretate dupa cum urmeaza: ru_utime Aceasta este cantitatea totala de timp petrecuta executand in modul utilizator, exprimata intr-o structura timeval (secunde plus microsecunde). ru_stime Aceasta este cantitatea totala de timp petrecuta executand in modul nucleu, exprimata intr-o structura timeval (secunde plus microsecunde). ru_maxrss (incepand cu Linux 2.6.32) Aceasta este dimensiunea maxima a setului rezident utilizat (in kilooctei). Pentru RUSAGE_CHILDREN, aceasta este dimensiunea setului rezident al celui mai mare copil, nu dimensiunea maxima a setului rezident al arborelui de procese. ru_ixrss (nu este intreinut) Acest camp este in prezent neutilizat pe Linux. ru_idrss (nu este intreinut) Acest camp este in prezent neutilizat pe Linux. ru_isrss (nu este intreinut) Acest camp este in prezent neutilizat pe Linux. ru_minflt Numarul de erori de pagina rezolvate fara nicio activitate de In/Ie; in acest caz, activitatea de In/Ie este evitata prin ,,recuperarea" unui cadru de pagina din lista de pagini care ateapta realocarea. ru_majflt Numarul de erori de pagina deservite care au necesitat activitate In/Ie. ru_nswap (nu este intreinut) Acest camp este in prezent neutilizat pe Linux. ru_inblock (incepand cu Linux 2.6.22) Numarul de ori in care sistemul de fiiere a trebuit sa efectueze o intrare. ru_oublock (incepand cu Linux 2.6.22) Numarul de ori in care sistemul de fiiere a trebuit sa efectueze o ieire. ru_msgsnd (nu este intreinut) Acest camp este in prezent neutilizat pe Linux. ru_msgrcv (nu este intreinut) Acest camp este in prezent neutilizat pe Linux. ru_nsignals (nu este intreinut) Acest camp este in prezent neutilizat pe Linux. ru_nvcsw (incepand cu Linux 2.6) Numarul de ori in care a avut loc o schimbare de context ca urmare a faptului ca un proces a renunat in mod voluntar la procesor inainte de finalizarea tranei sale de timp (de obicei pentru a atepta disponibilitatea unei resurse). ru_nivcsw (incepand cu Linux 2.6) Numarul de ori in care a avut loc o schimbare de context ca urmare a faptului ca un proces cu prioritate mai mare a devenit executabil sau pentru ca procesul curent i-a depait intervalul de timp. VALOAREA RETURNATA In caz de succes, se returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EFAULT usage indica in afara spaiului de adrese accesibil. EINVAL who nu este valid. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |getrusage() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. POSIX.1 specifica getrusage(), dar specifica numai campurile ru_utime i ru_stime. RUSAGE_THREAD este specific Linux. ISTORIC POSIX.1-2001, SVr4, 4.3BSD. Inainte de Linux 2.6.9, daca dispoziia SIGCHLD este stabilita la SIG_IGN, atunci utilizarile de resurse ale proceselor copil sunt incluse automat in valoarea returnata de RUSAGE_CHILDREN, dei POSIX.1-2001 interzice explicit acest lucru. Aceasta neconformitate este rectificata in Linux 2.6.9 i versiunile ulterioare. Definiia structurii prezentata la inceputul acestei pagini a fost preluata din 4.3BSD Reno. Sistemele vechi ofereau o funcie vtimes() cu un scop similar cu getrusage(). Pentru retrocompatibilitate, glibc (pana la Linux 2.32) furnizeaza, de asemenea, vtimes(). Toate aplicaiile noi ar trebui sa fie scrise folosind getrusage(); (incepand cu Linux 2.33, glibc nu mai furnizeaza o implementare vtimes()). NOTE Masuratorile de utilizare a resurselor sunt pastrate pe parcursul unui execve(2). CONSULTAI I clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3), proc_pid_stat(5), proc_pid_io(5) 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.15 17 mai 2025 getrusage(2)