Provided by: manpages-ru-dev_4.27.0-1_all 

НАИМЕНОВАНИЕ
posix_madvise - отсылает предложения по шаблонам использования памяти
БИБЛИОТЕКА
Стандартная библиотека языка C (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 Адреса в указанном диапазоне частично или полностью лежат вне адресного пространства вызывающего.
ВЕРСИИ
В POSIX.1 допускается, что реализация генерирует ошибку, если len равно 0. В Linux допустимо значение len
равное 0 (ничего не делается).
В glibc эта функция реализована через вызов madvise(2). Однако, начиная с glibc 2.6, POSIX_MADV_DONTNEED
для ничего не делается, так как соответствующее значение в madvise(2), MADV_DONTNEED, имеет
разрушительную семантику.
СТАНДАРТЫ
POSIX.1-2008.
ИСТОРИЯ
glibc 2.2. POSIX.1-2001.
СМОТРИТЕ ТАКЖЕ
madvise(2), posix_fadvise(2)
ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov
<azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan
<silverdk99@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов
<pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной
лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских
переводчиков.
Справочные страницы Linux 6.9.1 2 мая 2024 г. posix_madvise(3)