GETPAGESIZE(2)

ИМЯ
getpagesize - получить размер страницы памяти

ОБЗОР
#include <unistd.h>

int getpagesize(void);

ОПИСАНИЕ
Функция getpagesize() возвращает количество байт на страницу, где "страница" это сущность, используемая таким образом как описано в вызове mmap(2), отображающем файлы в память по-странично. Размер страниц, которые использует mmap, может быть найден используя
    #include <unistd.h>
    long sz = sysconf(_SC_PAGESIZE);
(некоторые системы также позволяют использовать синоним _SC_PAGE_SIZE вместо _SC_PAGESIZE), или
    #include <unistd.h>
    int sz = getpagesize();

ИСТОРИЯ
Данный вызов впервые появился в 4.2BSD.

СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.4BSD, SUSv2. В SUSv2 вызов getpagesize() помечается как "наследие", и в POSIX 1003.1-2001 он был удалён. HPUX не имеет этого вызова.

ЗАМЕЧАНИЯ
Наличие getpagesize() как системного вызова Linux зависит от архитектуры. Если вызов существует, он возвращает переменную ядра PAGE_SIZE, которая зависит от архитектуры и модели компьютера. Обычно, системный вызов зависит от архитектуры, а не от модели компьютера. Это означает, что пользовательская программа не должна брать значение PAGE_SIZE из заголовочного файла в момент компиляции, а должна использовать реальный системный вызов, по крайней мере для тех архитектур (таких как sun4), где вышеописанная зависимость существует. В данном случае libc4, libc5, glibc 2.0 работают неправильно, потому что функция getpagesize() реализованная в них, возвращает статически назначенное значение и не использует системный вызов. В glibc 2.1 всё работает правильно.

СМОТРИ ТАКЖЕ
mmap(2), sysconf(3)

ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2005