ИМЯ¶
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