Scroll to navigation

GETPAGESIZE(2) Manuel du programmeur Linux GETPAGESIZE(2)

NOM

getpagesize - Obtenir la taille des pages mémoire du système

SYNOPSIS

#include <unistd.h>

int getpagesize(void);


Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :

getpagesize() :

_BSD_SOURCE ||

!(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)

Avant la glibc 2.12 : _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

DESCRIPTION

La fonction getpagesize() renvoie le nombre d'octets dans une page. Une « page » est un bloc de taille fixe, et est l'unité pour l'allocation de la mémoire et la projection de fichiers réalisées par mmap(2).

CONFORMITÉ

SVr4, BSD 4.4, SUSv2. Dans SUSv2 l'appel getpagesize() est indiqué comme historique, et dans POSIX.1-2001 il a été abandonné ; HP-UX n'offre pas cet appel.

NOTES

Les applications portables doivent utiliser sysconf(_SC_PAGESIZE) plutôt que getpagesize() :


#include <unistd.h>
long sz = sysconf(_SC_PAGESIZE);

La plupart des systèmes autorisant le synonyme _SC_PAGE_SIZE pour _SC_PAGESIZE.

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, dont la valeur 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 une seule distribution binaire 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 où 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

mmap(2), sysconf(3)

COLOPHON

Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».

16 novembre 2010 Linux