Linux |
CentOS 4.8 |
|
sysinfo(2) |
sysinfo − Obtenir des informations statistiques sur le système. |
#include <sys/sysinfo.h> int sysinfo(struct sysinfo *info); |
Jusqu’au noyau 2.3.16, sysinfo renvoyait les informations dans la structure suivante : |
struct sysinfo { long uptime; /* Secondes écoulées depuis le boot.*/ unsigned long loads[3]; /* Charges depuis 1, 5, et 15 mn. */ unsigned long totalram; /* Mémoire totale du système. */ unsigned long freeram; /* Mémoire disponible. */ unsigned long sharedram; /* Mémoire partagée. */ unsigned long bufferram; /* Mémoire utilisée par les buffers */ unsigned long totalswap; /* Taille totale du swap. */ unsigned long freeswap; /* Espace disponible dans le swap. */ unsigned short procs; /* Nombre de processus actuels. */ char _f[22]; /* Remplissage jusqu’à 64 octets. */ }; |
et les tailles étaient fournies en octets. Depuis le noyau 2.3.23 (i386) et 2.3.48 (toutes architectures), la structure est devenue : |
struct sysinfo { long uptime; /* Secondes écoulées depuis le boot.*/ unsigned long loads[3]; /* Charges depuis 1, 5, et 15 mn. */ unsigned long totalram; /* Mémoire totale du système. */ unsigned long freeram; /* Mémoire disponible. */ unsigned long sharedram; /* Mémoire partagée. */ unsigned long bufferram; /* Mémoire utilisée par les buffers */ unsigned long totalswap; /* Taille totale du swap. */ unsigned long freeswap; /* Espace disponible dans le swap. */ unsigned short procs; /* Nombre de processus actuels. */ unsigned long totalhigh; /* Taille totale mémoire haute. */ unsigned long freehigh; /* Taille mémoire haute libre. */ usigned int mem_unit; /* Taille de bloc mémoire en octets */ char _f [20 - 2*sizeof(long) - sizeof(int)]; /* remplissage */ }; |
et les tailles sont indiqués sous forme de multiples de mem_unit. sysinfo permet d’obtenir facilement des statistiques systèmes. C’est plus portable que la lecture de /dev/kmem. Pour avoir un exemple d’utilisation, reportez-vous à intro(2). |
sysinfo renvoie 0 s’il réussit et −1 s’il échoue auquel cas errno contient le code d’erreur. |
EFAULT |
struct sysinfo pointe en dehors de l’espace d’adressage accessible. |
Cette fonction est spécifique Linux et ne doit pas être employée dans des programmes destinés à être portables. Le noyau Linux dispose d’un appel-système sysinfo depuis la version 0.98pl6. La bibliothèque libc de Linux contient une routine sysinfo() depuis la version 5.3.5, et la bibliothèque glibc depuis 1.90. |
proc(5) |
Christophe Blaess, 1997. |
sysinfo(2) |