getpagesize(2) obtiene el tamaño de página de memoria

SINOPSIS

#include <unistd.h>

int getpagesize(void);

DESCRIPCIÓN

La función getpagesize() devuelve el número de bytes de una página, donde una "página" es lo que se utiliza en la parte de la descripción de mmap(2) que dice que los ficheros son ubicados en unidades de tamaño de página.

El tamaño del tipo de páginas que usa mmap , se averigua usando

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

(algunos sistemas también permiten el sinónimo _SC_PAGE_SIZE por _SC_PAGESIZE), or

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

HISTORIA

Esta llamada apareció por primera vez en 4.2BSD.

CONFORME A

SVr4, 4.4BSD, SUSv2. En SUSv2 la llamada getpagesize() está etiquetada como "antigua", y en POSIX 1003.1-2001 ha sido eliminada. HPUX no posee esta llamada..

OBSERVACIONES

Que getpagesize() esté presente como una llamada al sistema de Linux depende de la arquitectura. Si lo está, devolverá el símbolo del núcleo PAGE_SIZE, que es dependiente de la arquitectura y del modelo de máquina. Generalmente, suelen usarse binarios que son dependientes de la arquitectura pero no del modelo de máquina, con el fin de tener un único binario por arquitectura. Esto significa que un programa de usuario no debería incorporar PAGE_SIZE en tiempo de compilación de un fichero de cabecera, sino usar una llamada al sistema real, al menos en aquellas arquitecturas (como sun4) donde exista esta dependencia. Aquí fallan libc4, libc5 y glibc 2.0 porque su llamada getpagesize() devuelve un valor calculado estáticamente, y no utiliza una llamada al sistema. Este aspecto está solucionado en la versión 2.1 de glibc.