| getrusage(2) | System Calls Manual | getrusage(2) | 
NUME
getrusage - obține informații despre utilizarea resurselor
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <sys/resource.h>
int getrusage(int who, struct rusage *usage);
DESCRIERE
getrusage() returnează măsurile de utilizare a resurselor pentru who, care pot fi una dintre următoarele:
- RUSAGE_SELF
 - Returnează statisticile de utilizare a resurselor pentru procesul apelant, care reprezintă suma resurselor utilizate de toate firele din proces.
 - RUSAGE_CHILDREN
 - Returnează statistici privind utilizarea resurselor pentru toți copiii procesului apelant care s-au încheiat și au fost așteptați. Aceste statistici vor include resursele utilizate de nepoți și de descendenții îndepărtați ulterior, în cazul în care toți descendenții care au intervenit și-au așteptat copiii care s-au încheiat.
 - RUSAGE_THREAD (începând cu Linux 2.6.26)
 - Returnează statisticile de utilizare a resurselor pentru firul apelant. Macrocomanda de testare a caracteristicii _GNU_SOURCE trebuie definit (înainte de includerea fișierului de antet any) pentru a obține definiția acestei constante din <sys/resource.h>.
 
Utilizările resurselor sunt returnate în structura indicată de usage, care are următoarea formă:
  
struct rusage {
    struct timeval ru_utime; /* timpul CPU utilizat de utilizator */
    struct timeval ru_stime; /* timpul CPU utilizat de sistem */
    long   ru_maxrss;        /* dimensiunea maximă a setului rezident */
    long   ru_ixrss;         /* dimensiunea integrală a memoriei partajate */
    long   ru_idrss;         /* dimensiunea integrală a memoriei nepartajate */
    long   ru_isrss;         /* dimensiune integrală a stivei nepartajate */
    long   ru_minflt;        /* revendicări de pagină (defecte de pagină ușoare) */
    long   ru_majflt;        /* defecte de pagină (defecte de pagină grave) */
    long   ru_nswap;         /* swaps */
    long   ru_inblock;       /* operații de intrare în bloc */
    long   ru_oublock;       /* operații de ieșire în blocs */
    long   ru_msgsnd;        /* mesaje IPC trimise */
    long   ru_msgrcv;        /* mesaje IPC primite */
    long   ru_nsignals;      /* semnale primite */
    long   ru_nvcsw;         /* schimbări voluntare de context */
    long   ru_nivcsw;        /* schimbări involuntare de context */
};
Nu toate câmpurile sunt completate; câmpurile neîntreținute sunt puse la zero de către nucleu; (câmpurile neîntreținute sunt furnizate pentru compatibilitate cu alte sisteme și pentru că într-o zi ar putea fi acceptate pe Linux). Câmpurile sunt interpretate după cum urmează:
- ru_utime
 - Aceasta este cantitatea totală de timp petrecută executând în modul utilizator, exprimată într-o structură timeval (secunde plus microsecunde).
 - ru_stime
 - Aceasta este cantitatea totală de timp petrecută executând în modul nucleu, exprimată într-o structură timeval (secunde plus microsecunde).
 - ru_maxrss (începând cu Linux 2.6.32)
 - Aceasta este dimensiunea maximă a setului rezident utilizat (în kiloocteți). Pentru RUSAGE_CHILDREN, aceasta este dimensiunea setului rezident al celui mai mare copil, nu dimensiunea maximă a setului rezident al arborelui de procese.
 - ru_ixrss (nu este întreținut)
 - Acest câmp este în prezent neutilizat pe Linux.
 - ru_idrss (nu este întreținut)
 - Acest câmp este în prezent neutilizat pe Linux.
 - ru_isrss (nu este întreținut)
 - Acest câmp este în prezent neutilizat pe Linux.
 - ru_minflt
 - Numărul de erori de pagină rezolvate fără nicio activitate de In/Ieș; în acest caz, activitatea de In/Ieș este evitată prin „recuperarea” unui cadru de pagină din lista de pagini care așteaptă realocarea.
 - ru_majflt
 - Numărul de erori de pagină deservite care au necesitat activitate In/Ieș.
 - ru_nswap (nu este întreținut)
 - Acest câmp este în prezent neutilizat pe Linux.
 - ru_inblock (începând cu Linux 2.6.22)
 - Numărul de ori în care sistemul de fișiere a trebuit să efectueze o intrare.
 - ru_oublock (începând cu Linux 2.6.22)
 - Numărul de ori în care sistemul de fișiere a trebuit să efectueze o ieșire.
 - ru_msgsnd (nu este întreținut)
 - Acest câmp este în prezent neutilizat pe Linux.
 - ru_msgrcv (nu este întreținut)
 - Acest câmp este în prezent neutilizat pe Linux.
 - ru_nsignals (nu este întreținut)
 - Acest câmp este în prezent neutilizat pe Linux.
 - ru_nvcsw (începând cu Linux 2.6)
 - Numărul de ori în care a avut loc o schimbare de context ca urmare a faptului că un proces a renunțat în mod voluntar la procesor înainte de finalizarea tranșei sale de timp (de obicei pentru a aștepta disponibilitatea unei resurse).
 - ru_nivcsw (începând cu Linux 2.6)
 - Numărul de ori în care a avut loc o schimbare de context ca urmare a faptului că un proces cu prioritate mai mare a devenit executabil sau pentru că procesul curent și-a depășit intervalul de timp.
 
VALOAREA RETURNATĂ
În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
ERORI-IEȘIRE
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
| Interfață | Atribut | Valoare | 
| getrusage() | Siguranța firelor | MT-Safe | 
STANDARDE
POSIX.1-2008.
POSIX.1 specifică getrusage(), dar specifică numai câmpurile ru_utime și ru_stime.
RUSAGE_THREAD este specific Linux.
ISTORIC
POSIX.1-2001, SVr4, 4.3BSD.
Înainte de Linux 2.6.9, dacă dispoziția SIGCHLD este stabilită la SIG_IGN, atunci utilizările de resurse ale proceselor copil sunt incluse automat în valoarea returnată de RUSAGE_CHILDREN, deși POSIX.1-2001 interzice explicit acest lucru. Această neconformitate este rectificată în Linux 2.6.9 și versiunile ulterioare.
Definiția structurii prezentată la începutul acestei pagini a fost preluată din 4.3BSD Reno.
Sistemele vechi ofereau o funcție vtimes() cu un scop similar cu getrusage(). Pentru retrocompatibilitate, glibc (până la Linux 2.32) furnizează, de asemenea, vtimes(). Toate aplicațiile noi ar trebui să fie scrise folosind getrusage(); (începând cu Linux 2.33, glibc nu mai furnizează o implementare vtimes()).
NOTE
Măsurătorile de utilizare a resurselor sunt păstrate pe parcursul unui execve(2).
CONSULTAȚI ȘI
clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3), proc_pid_stat(5), proc_pid_io(5)
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută 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.
| 17 mai 2025 | Pagini de manual de Linux 6.15 |