Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       getrusage - считывает использованные ресурсы

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <sys/resource.h>

       int getrusage(int who, struct rusage *usage);

ОПИСАНИЕ

       getrusage() возвращает текущие ограничения на ресурсы для значения who, которое может быть:

       RUSAGE_SELF
              Возвращает  статистику  по  использованию ресурсов вызывающим процессом (суммируются значения всех
              нитей процесса).

       RUSAGE_CHILDREN
              Возвращает статистику по  использованию  ресурсов  всех  потомков  вызывающего  процесса,  которые
              завершились   или   завершение   которых  ожидается.  Эта  статистика  включает  в  себя  ресурсы,
              использованные внучками и дальнейшими потомками, если все промежуточные потомки завершились или их
              завершение ожидается.

       RUSAGE_THREAD (начиная с Linux 2.6.26)
              Возвращает статистику по использованию ресурсов вызывающей нити. Чтобы получить  определение  этой
              константы  из  <sys/resource.h>  должен быть определён макрос тестирования свойств _GNU_SOURCE (до
              включения всех заголовочных файлов).

       Данные по использованным ресурсам возвращаются  в  структуре,  на  которую  указывает  usage;  она  имеет
       следующий вид:

           struct rusage {
               struct timeval ru_utime; /* время ЦП, исполь. в режиме пользователя */
               struct timeval ru_stime; /* время ЦП, исполь. в режиме системы */
               long   ru_maxrss;        /* максимальный rss */
               long   ru_ixrss;         /* полный объём общей памяти */
               long   ru_idrss;         /* полный объём собственной памяти */
               long   ru_isrss;         /* полный объём собственного стека */
               long   ru_minflt;        /* количество восстановленных страниц
                                           (мягких отказов) */
               long   ru_majflt;        /* количество отказавших страниц
                                           (жёстких отказов) */
               long   ru_nswap;         /* количество обращений при подкачке */
               long   ru_inblock;       /* количество операций блокового ввода */
               long   ru_oublock;       /* количество операций блокового вывода */
               long   ru_msgsnd;        /* количество посланных сообщений IPC */
               long   ru_msgrcv;        /* количество принятых сообщений IPC */
               long   ru_nsignals;      /* количество принятых сигналов */
               long   ru_nvcsw;         /* количество переключений контекста */
               long   ru_nivcsw;        /* кол-во принудительных переключений контекста */
           };

       Не  все  поля  заполняются;  несопровождаемые  поля  устанавливаются ядром в ноль. (Несопровождаемые поля
       предоставляются для совместимости с другими системами, и когда-нибудь  станут  поддерживаться  в  Linux.)
       Поля следует понимать так:

       ru_utime
              Общее  количество  времени,  проведённое  в  режиме  пользователя,  выражается  структурой timeval
              (секунды и микросекунды).

       ru_stime
              Общее количество времени, проведённое в режиме ядра,  выражается  структурой  timeval  (секунды  и
              микросекунды).

       ru_maxrss (начиная с Linux 2.6.32)
              Максимальный используемый размер постоянно занимаемый в памяти (в килобайтах). Для RUSAGE_CHILDREN
              определяется  наибольший  размер  постоянной  памяти  среди  потомков,  а  не  максимальный размер
              постоянной памяти всего дерева процесса.

       ru_ixrss (не ведётся)
              В настоящее время в Linux не учитывается.

       ru_idrss (не ведётся)
              В настоящее время в Linux не учитывается.

       ru_isrss (не ведётся)
              В настоящее время в Linux не учитывается.

       ru_minflt
              Количество сбойных страниц, обслуженных  без  операций  ввода-вывода;  в  данном  случае  страницы
              «восстановлены» из списка страниц, ожидающих перемещения.

       ru_majflt
              Количество сбойных страниц, обслуженных с помощью операций ввода-вывода.

       ru_nswap (не ведётся)
              В настоящее время в Linux не учитывается.

       ru_inblock (начиная с Linux 2.6.22)
              Количество обращений на чтение из файловой системы.

       ru_oublock (начиная с Linux 2.6.22)
              Количество обращений на запись в файловую систему.

       ru_msgsnd (не ведётся)
              В настоящее время в Linux не учитывается.

       ru_msgrcv (не ведётся)
              В настоящее время в Linux не учитывается.

       ru_nsignals (не ведётся)
              В настоящее время в Linux не учитывается.

       ru_nvcsw (начиная с Linux 2.6)
              Количество  переключений  контекста  в следствии добровольной отдачи процессом процессора до того,
              как истёк его рабочий временной интервал (обычно, из-за ожидания доступности ресурса).

       ru_nivcsw (начиная с Linux 2.6)
              Количество переключений контекста в следствии вытеснения процессом с более высоким приоритетом или
              из-за истечения рабочего временного интервала процесса.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При успешном выполнении возвращается 0. При ошибке возвращается -1, а в errno содержится код ошибки.

ОШИБКИ

       EFAULT usage указывает за пределы доступного адресного пространства.

       EINVAL Неверное значение who.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ ИнтерфейсАтрибутЗначение │
       ├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │ getrusage()                                                         │ Безвредность в нитях │ MT-Safe  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       POSIX.1-2008.

       POSIX.1 specifies getrusage(), but specifies only the fields ru_utime and ru_stime.

       RUSAGE_THREAD есть только в Linux.

ИСТОРИЯ

       POSIX.1-2001, SVr4, 4.3BSD.

       Before Linux 2.6.9, if the disposition of SIGCHLD is set to SIG_IGN then the  resource  usages  of  child
       processes  are  automatically  included  in  the value returned by RUSAGE_CHILDREN, although POSIX.1-2001
       explicitly prohibits this.  This nonconformance is rectified in Linux 2.6.9 and later.

       Определение структуры, показанное в начале страницы, взято из 4.3BSD Reno.

       Ancient systems provided a vtimes()  function with  a  similar  purpose  to  getrusage().   For  backward
       compatibility,  glibc  (up  until  Linux  2.32)  also  provides vtimes().  All new applications should be
       written using getrusage().  (Since Linux 2.33, glibc no longer provides an vtimes() implementation.)

ПРИМЕЧАНИЯ

       Значения использованных ресурсов сохраняются при execve(2).

СМОТРИТЕ ТАКЖЕ

       clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3), proc_pid_stat(5), proc_pid_io(5)

ПЕРЕВОД

       Русский перевод этой страницы  руководства  разработал(и)  Azamat  Hackimov  <azamat.hackimov@gmail.com>,
       Dmitry   Bolkhovskikh   <d20052005@yandex.ru>,   Vladislav   <ivladislavefimov@gmail.com>,   Yuri  Kozlov
       <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                     getrusage(2)