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

ИМЯ

       posix_madvise - отсылает предложения по шаблонам использования памяти

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <sys/mman.h>

       int posix_madvise(void addr[.len], size_t len, int advice);

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

       posix_madvise():
           _POSIX_C_SOURCE >= 200112L

ОПИСАНИЕ

       Функция   posix_madvise()  позволяет  приложению  показывать  системе  свои  ожидания  при
       использовании памяти в диапазоне начиная с адреса addr и длиной len  байт.  Система  может
       использовать  это  предложение  для  улучшения  производительности  доступа  к памяти (или
       игнорировать), но вызов posix_madvise() не  повлияет  на  семантику  доступа  к  памяти  в
       указанном диапазоне.

       В аргументе advice указывается одно из следующих значений:

       POSIX_MADV_NORMAL
              Приложение  не  даёт  каких-либо предложений о том, как будет использована память в
              указанном диапазоне. Поведение по умолчанию.

       POSIX_MADV_SEQUENTIAL
              Приложение будет последовательно обращаться к памяти в указанном диапазоне адресов,
              от  младшего  адреса к старшему. Следовательно, все страницы в этом диапазоне можно
              заранее прочитать и освободить сразу после доступа к ним.

       POSIX_MADV_RANDOM
              Приложение будет обращаться по указанному диапазону адресов в случайном порядке. То
              есть упреждающее чтение может быть менее эффективным, чем обычно.

       POSIX_MADV_WILLNEED
              Приложение обратится по указанному диапазону адресов в в ближайшем будущем. То есть
              от упреждающего чтения можно выиграть.

       POSIX_MADV_DONTNEED
              Приложение не будет обращаться  по  указанному  диапазону  адресов  в  в  ближайшем
              будущем.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При   успешном   выполнении   posix_madvise()   возвращает   0.  При  ошибке  возвращается
       положительный номер ошибки.

ОШИБКИ

       EINVAL Значение addr не кратно размеру системной страницы или значение len отрицательно.

       EINVAL Неверное значение advice.

       ENOMEM Адреса  в  указанном  диапазоне  частично  или  полностью   лежат   вне   адресного
              пространства вызывающего.

ВЕРСИИ

       Support for posix_madvise()  was added in glibc 2.2.

СТАНДАРТЫ

       POSIX.1-2001.

ЗАМЕЧАНИЯ

       В  POSIX.1  допускается,  что  реализация  генерирует  ошибку,  если  len равно 0. В Linux
       допустимо значение len равное 0 (ничего не делается).

       В glibc эта функция реализована через вызов  madvise(2).  Однако,  начиная  с  glibc  2.6,
       POSIX_MADV_DONTNEED для ничего не делается, так как соответствующее значение в madvise(2),
       MADV_DONTNEED, имеет разрушительную семантику.

СМ. ТАКЖЕ

       madvise(2), posix_fadvise(2)

ПЕРЕВОД

       Русский  перевод  этой  страницы  руководства   был   сделан   Alexey,   Azamat   Hackimov
       <azamat.hackimov@gmail.com>,   kogamatranslator49  <r.podarov@yandex.ru>,  Kogan,  Max  Is
       <ismax799@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⟩.