sysinfo - возвращает общесистемную статистику
НАЗВАНИЕsysinfo - возвращает общесистемную статистику
СИНТАКСИС
#include
int sysinfo(struct sysinfo *info);
ОПИСАНИЕ
В ядрах Linux версий, более ранних, чем 2.3.16, sysinfo
возвращала следующую структуру:
struct sysinfo {
long uptime; /* Количество секунд, прошедшее с загрузки системы */
unsigned long loads[3]; /* средняя одно-, пяти-, и пятнадцатиминутная загруженность системы */
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-х байтов */
};
, причем, все размеры задавались в байтах. Начиная с ядра
версии 2.3.23 (i386), 2.3.48 (остальных архитектур),
структура стала следующей:
struct sysinfo {
long uptime; /* Количество секунд, прошедшее с загрузки системы */
unsigned long loads[3]; /* средняя одно-, пяти-, и пятнадцатиминутная загруженность системы */
unsigned long totalram; /* Общий объем доступной оперативной памяти */
unsigned long freeram; /* Объем свободной памяти */
unsigned long sharedram; /* Объем разделяемой памяти */
unsigned long bufferram; /* Объем памяти, использованной под буферы */
unsigned long totalswap; /* Общий объем области подкачки */
unsigned long freeswap; /* Объем свободного пространства в области подкачки */
unsigned short procs; /* Текущее количество процессов */
unsigned long totalhigh; /* Общий объем верхней памяти */
unsigned long freehigh; /* Объем свободной верхней памяти */
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. Подпрограмма sysinfo() появилась в libc версии
5.3.5 и в glibc версии 1.90.