GETPAGESIZE
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
HISTORIQUE
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION
NOM
getpagesize - Obtenir la taille des pages mémoire du système.
SYNOPSIS
#include <unistd.h>
size_t getpagesize(void);
DESCRIPTION
La fonction
getpagesize()
renvoie le nombre d'octets dans une page. Une "page" est ce que l'on
considère quand on dit dans la description de
mmap(2)
que les fichiers sont projetés en unités de la taille d'une page.
La taille d'une page du type de celle utilisée par
mmap
est obtenue en utilisant
-
#include <unistd.h>
long sz = sysconf(_SC_PAGESIZE);
(certains systèmes autorisant le synonyme _SC_PAGE_SIZE pour _SC_PAGESIZE), ou
-
#include <unistd.h>
int sz = getpagesize();
HISTORIQUE
Cet appel est apparu en premier dans 4.2BSD.
CONFORMITÉ
SVr4, 4.4BSD, SUSv2.
Dans SUSv2 l'appel
getpagesize()
est indiqué comme facultatif, et dans Posix 1003.1-2001 il a
été abandonné.
HPUX n'offre pas cet appel.
NOTES
Que la routine
getpagesize()
sous Linux invoque un appel-système ou non dépend de l'architecture. Si c'est
le cas, elle renvoie la valeur du symbole PAGE_SIZE du noyau, qui dépend
de l'architecture et du modèle de machine.
Généralement on utilise des exécutables binaires qui dépendent de l'architecture
mais pas du modèle de machine afin d'avoir un seul fichier binaire de distribution
par architecture. Ceci signifie qu'un programme utilisateur ne doit pas rechercher
la valeur de PAGE_SIZE dans les fichiers d'en-tête lors de la compilation, mais
invoquer véritablement un appel-système, au moins pour les architectures ou
cette dépendance existe (comme sun4).
En ce sens, libc4, libc5 et GlibC 2.0 font erreur car leur version de
getpagesize()
renvoie une valeur calculée statiquement, et n'invoque pas d'appel-système.
Tout est arrangé depuis la GlibC 2.1.
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|