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 (consulter feature_test_macros(7)) :

getpagesize() :
    Since glibc 2.20:
        _DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
    Glibc 2.12 to 2.19:
        _BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
    Before glibc 2.12:
        _BSD_SOURCE || _XOPEN_SOURCE >= 500

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.

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.

VOIR AUSSI
mmap(2), sysconf(3)

COLOPHON
Cette page fait partie de la publication 5.13 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION
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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.