table of contents
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¶
- 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ŻĘ¶
1997-08-25 | Linux 2.0 |