NOMBRE¶
getpagesize - 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.
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.
VÉASE TAMBIÉN¶
mmap(2),
sysconf(3)