sysinfo

Autres langues

Langue: ru

Autres versions - même langue

Version: 1997-08-25 (fedora - 25/11/07)

Section: 2 (Appels système)

ИМЯ

sysinfo - возвращает информацию по общесистемной статистике

ОБЗОР

#include <sys/sysinfo.h>

int sysinfo(struct sysinfo *info);

ОПИСАНИЕ

Начиная с Linux 2.3.16, sysinfo используется для получения информации в следующей структуре:
 struct sysinfo {
         long uptime;             /* секунд с момента начальной загрузки */
         unsigned long loads[3];  /* средняя загрузка системы за 1, 5 и 15 минут */
         unsigned long totalram;  /* общее количество оперативной памяти */
         unsigned long freeram;   /* объём доступной памяти */
         unsigned long sharedram; /* объём разделяемой памяти */
         unsigned long bufferram; /* память, используемая под буферы */
         unsigned long totalswap; /* общий объём своппинга */
         unsigned long freeswap;  /* доступно памяти на своппинге */
         unsigned short procs;    /* количество текущих процессов */
         char _f[22];             /* остаток структуры в 64 байта */
 };
 

Все объёмы даются в байтах. Начиная с Linux 2.3.23 (i386), 2.3.48 (все архитектуры) эта же структура выглядит так

 struct sysinfo {
         long uptime;             /* секунд с момента начальной загрузки */
         unsigned long loads[3];  /* средняя загрузка системы за 1, 5 и 15 минут */
         unsigned long totalram;  /* общее количество оперативной памяти */
         unsigned long freeram;   /* объём доступной памяти */
         unsigned long sharedram; /* объём разделяемой памяти */
         unsigned long bufferram; /* память, используемая под буферы */
         unsigned long totalswap; /* общий объём своппинга */
         unsigned long freeswap;  /* доступно памяти на своппинге */
         unsigned short procs;    /* количество текущих процессов */
         unsigned long totalhigh; /* общий объём старшей (high) памяти */
         unsigned long freehigh;  /* доступный объём старшей (high) памяти */
         unsigned int mem_unit;   /* Размер модуля памяти в байтах */
         char _f[20-2*sizeof(long)-sizeof(int)]; /* остаток для libc5 */
 };
 

и все объёмы даются с размерностью в mem_unit байт.

sysinfo предоставляет простой способ получения общесистемной статистики. Этот способ более переносим на другие платформы, чем чтение /dev/kmem. Пример использования смотрите в intro(2).

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

В случае успеха, возвращается 0. В случае ошибки возвращается -1 и значение errno устанавливается соответствующим образом.

ОШИБКИ

EFAULT
указатель на struct sysinfo задан неправильно

СООТВЕТСТВИЕ СТАНДАРТАМ

Данная функция является специфичной для Linux и не должна использоваться в программах, которые задуманы как переносимые на другие платформы.

Системный вызов sysinfo появился в ядрах Linux начиная с версии 0.98.pl6. Linux libc содержит подпрограмму sysinfo(), начиная с версии 5.3.5, а glibc с версии 1.90.

СМОТРИ ТАКЖЕ

proc(5)

ПЕРЕВОД

Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2004