SYSINFO
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
|
EFAULT
|
|
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)