Provided by: manpages-ru-dev_4.21.0-2_all 

ИМЯ
getpagesize - определяет размер страницы памяти
LIBRARY
Standard C library (libc, -lc)
СИНТАКСИС
#include <unistd.h>
int getpagesize(void);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
getpagesize():
Since glibc 2.20:
_DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
glibc 2.12 to glibc 2.19:
_BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
Before glibc 2.12:
_BSD_SOURCE || _XOPEN_SOURCE >= 500
ОПИСАНИЕ
Вызов getpagesize() возвращает количество байтов в странице памяти, где «страница» представляет собой
блок фиксированной длины, единица измерения при выделения памяти и файлового отображения, выполняемого с
помощью mmap(2).
СТАНДАРТЫ
SVr4, 4.4BSD, SUSv2. В SUSv2 вызов getpagesize() отмечен как УСТАРЕВШИЙ, и был удалён из POSIX.1-2001; в
HP-UX такого вызова нет.
ЗАМЕЧАНИЯ
В переносимых программах вместо getpagesize() следует использовать sysconf(_SC_PAGESIZE):
#include <unistd.h>
long sz = sysconf(_SC_PAGESIZE);
(большинство систем позволяют использовать _SC_PAGE_SIZE вместо _SC_PAGESIZE.)
В Linux системный вызов getpagesize() есть не на всех архитектурах. Если он есть, то он возвращает символ
ядра PAGE_SIZE, чьё значение зависит от архитектуры и модели компьютера. Как правило, создаваемые
двоичные файлы используются для всей архитектуры, а не для конкретной одной модели. Поэтому рекомендуется
определять PAGE_SIZE не на стадии компиляции из файла заголовка, а при выполнении программы с помощью
данной функции, по крайней мере на тех архитектурах (таких как sun), где зависимость от модели
существует. В этом случае в библиотечные вызовы glibc 2.0 завершатся неудачно, так как её getpagesize()
возвращает статически определённое значение и не использует системный вызов. В glibc 2.1 это исправлено.
СМ. ТАКЖЕ
mmap(2), sysconf(3)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry
Bolkhovskikh <d20052005@yandex.ru>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov
<yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
на man-pages-ru-talks@lists.sourceforge.net.
Linux man-pages 6.03 5 февраля 2023 г. getpagesize(2)