Scroll to navigation

SYSINFO(2) Podręcznik programisty Linuksa SYSINFO(2)

NAZWA

sysinfo - zwraca informacje statystyczne dotyczące całego systemu

SKŁADNIA

#include <sys/sysinfo.h>

int sysinfo(struct sysinfo *info);

OPIS

Aż do Linuksa 2.3.16 sysinfo zwracało informacje w następującej strukturze:

struct sysinfo {
	long uptime;             /* ilość sekund od startu systemu */
	unsigned long loads[3];  /* średnie obciążenie w ciągu 1, 5 i 15min.*/
	unsigned long totalram;  /* ilość pamięci */
	unsigned long freeram;   /* ilość wolnej pamięci */
	unsigned long sharedram; /* ilość pamięci wspólnej */
	unsigned long bufferram; /* pamięć wykorzystywana przez bufory */
	unsigned long totalswap; /* ilość pamięci wymiany */
	unsigned long freeswap;  /* ilość wolnej pamięci wymiany */
	unsigned short procs;    /* ilość procesów */
	char _f[22];             /* dopełnienie do 64 bajtów */
};

i rozmiary były podawane w bajtach. Począwszy od Linuksa 2.3.23 (i386), 2.3.48 (wszystkie architektury) struktura ta ma postać

struct sysinfo {
	long uptime;             /* ilość sekund od startu systemu */
	unsigned long loads[3];  /* średnie obciążenie w ciągu 1, 5 i 15min.*/
	unsigned long totalram;  /* ilość pamięci */
	unsigned long freeram;   /* ilość wolnej pamięci */
	unsigned long sharedram; /* ilość pamięci wspólnej */
	unsigned long bufferram; /* pamięć wykorzystywana przez bufory */
	unsigned long totalswap; /* ilość pamięci wymiany */
	unsigned long freeswap;  /* ilość wolnej pamięci wymiany */
	unsigned short procs;    /* ilość procesów */
	unsigned long totalhigh; /* ilość pamięci wysokiej */
	unsigned long freehigh;  /* ilość wolnej pamięci wysokiej */
	unsigned int mem_unit;   /* wielkość jednostki pamięci w bajtach */
	char _f[20-2*sizeof(long)-sizeof(int)]; /* dopełnienie dla libc5 */
};

i rozmiary są podawane jako wielokrotności mem_unit bajtów.

sysinfo w prosty sposób udostępnia ogólnosystemowe statystyki. Metoda ta jest bardziej przenośna niż odczytywanie /dev/kmem. Przykład użycia można znaleźć w intro(2).

WARTOŚĆ ZWRACANA

W razie pomyślnego zakończenia zwracane jest zero. W przypadku błędu zwracane jest -1 i odpowiednio ustawiane errno.

BŁĘDY

wskaźnik do struct sysinfo jest nieprawidłowy

ZGODNE Z

Ta funkcja jest specyficzna dla Linuksa i nie powinna być wykorzystywana w programach, które mają być przenośne.

Jądro Linuksa dysponuje wywołaniem systemowym sysinfo od wersji 0.98.pl6. Linoksowa boblioteka libc zawiera funkcję sysinfo() od wersji 5.3.5, a glibc od 1.90.

ZOBACZ TAKŻĘ

proc(5)

1997-08-25 Linux 2.0