| getrusage(2) | System Calls Manual | getrusage(2) |
getrusage - pobiera użycie zasobów
Standardowa biblioteka C (libc, -lc)
#include <sys/resource.h>
int getrusage(int who, struct rusage *usage);
getrusage() zwraca użycie zasobów zmierzone dla who, którym może być jeden z:
Użycie zasobów jest zwracane w strukturze, na którą wskazuje usage, w postaci:
struct rusage {
struct timeval ru_utime; /* użyty czas procesora użytkownika */
struct timeval ru_stime; /* użyty czas procesora systemu */
long ru_maxrss; /* maksymalny rozmiar zestawu rezydentnego */
long ru_ixrss; /* całkowity rozmiar pamięci dzielonej */
long ru_idrss; /* całkowity rozmiar niedzielonych danych */
long ru_isrss; /* całkowity rozmiar niedzielonego stosu */
long ru_minflt; /* odzyskane strony (pomniejsze chybienia) */
long ru_majflt; /* chybienia stron (główne chybienia) */
long ru_nswap; /* wymienione strony */
long ru_inblock; /* blokowe operacje wejścia */
long ru_oublock; /* blokowe operacje wyjścia */
long ru_msgsnd; /* wysłane komunikaty IPC */
long ru_msgrcv; /* otrzymane komunikaty IPC */
long ru_nsignals; /* otrzymane sygnały */
long ru_nvcsw; /* dobrowolne przełączenia kontekstu */
long ru_nivcsw; /* przymusowe przełączenia kontekstu */
};
Nie wszystkie pola są ukończone; pola nieutrzymywane są ustawiane na zero przez jądro (pola nieutrzymywane są zapewniane ze względu na kompatybilność z innymi systemami i ponieważ w przyszłości mogą być obsługiwane w Linuksie). Pola są interpretowane w następujący sposób:
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest -1 i ustawiane errno, wskazując błąd.
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
| Interfejs | Atrybut | Wartość |
| getrusage() | Bezpieczeństwo wątkowe | MT-bezpieczne |
POSIX.1-2008.
POSIX.1 określa getrusage(), lecz opisuje jedynie pola ru_utime i ru_stime.
RUSAGE_THREAD jest typowo linuksowe.
POSIX.1-2001, SVr4, 4.3BSD.
Przed Linuksem 2.6.9, jeśli dyspozycję SIGCHLD ustawiono na SIG_IGN, to w wartości zwracanej przez RUSAGE_CHILDREN, automatycznie uwzględniane jest użycie zasobu przez procesy potomne, mimo że POSIX.1-2001 wyraźnie tego zabrania. Tę niezgodność ze standardem usunięto w Linuksie 2.6.9 i nowszych.
Definicję struktury pokazaną na początku niniejszego podręcznika zaczerpnięto z 4.3BSD Reno.
Bardzo stare systemy udostępniały funkcję vtimes() o podobnym przeznaczeniu co getrusage(). Ze względu na kompatybilność, glibc (do Linuksa 2.32) również dostarczał vtimes(). Wszystkie nowe aplikacje powinny być pisane z wykorzystaniem getrusage() (od Linuksa 2.33, glibc nie udostępnia już implementacji vtimes()).
Wskaźniki użycia zasobów są zachowywane przy execve(2).
clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3), proc_pid_stat(5), proc_pid_io(5)
Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
| 2 maja 2024 r. | Linux man-pages 6.9.1 |