- bullseye-backports 4.18.1-1~bpo11+1
- testing 4.18.1-1
- unstable 4.18.1-1
POSIX_MADVISE(3) | Руководство программиста Linux | POSIX_MADVISE(3) |
ИМЯ¶
posix_madvise - отсылает предложения по шаблонам использования памяти
СИНТАКСИС¶
#include <sys/mman.h>
int posix_madvise(void *addr, size_t len, int advice);
posix_madvise():
ОПИСАНИЕ¶
Функция 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. При ошибке возвращается положительный номер ошибки.
ОШИБКИ¶
ВЕРСИИ¶
Поддержка posix_madvise() появилась в 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, имеет разрушительную семантику.
СМ. ТАКЖЕ¶
ЗАМЕЧАНИЯ¶
Эта страница является частью проекта Linux man-pages версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.
ПЕРЕВОД¶
Русский перевод этой страницы руководства был сделан 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 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
15 сентября 2017 г. | Linux |