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

ИМЯ

       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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.