DOKK / manpages / debian 12 / manpages-fr-dev / getpagesize.2.fr
getpagesize(2) System Calls Manual getpagesize(2)

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

Bibliothèque C standard (libc, -lc)

#include <unistd.h>
int getpagesize(void);

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

getpagesize() :


Depuis la glibc 2.20 :
_DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
De la glibc 2.12 à la glibc 2.19 :
_BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
Avant la glibc 2.12 :
_BSD_SOURCE || _XOPEN_SOURCE >= 500

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).

SVr4, 4.4BSD, 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.

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.

La présence de getpagesize() sous la forme d'un appel sous Linux dépend de l'architecture. Si c'est le cas, elle renvoie le symbole PAGE_SIZE du noyau qui dépend de l'architecture et du modèle de la 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 PAGE_SIZE dans un fichier 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). La glibc 2.0 y échoue car sa getpagesize() renvoie une valeur calculée statiquement, et n'invoque pas d'appel système. Tout est arrangé depuis la glibc 2.1.

mmap(2), sysconf(3)

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

5 février 2023 Pages du manuel de Linux 6.03