.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2015 Michael Kerrisk .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH posix_madvise 3 "30 марта 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ posix_madvise \- отсылает предложения по шаблонам использования памяти .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint posix_madvise(void \fP\fIaddr\fP\fB[.\fP\fIlen\fP\fB], size_t \fP\fIlen\fP\fB, int \fP\fIadvice\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP \fBposix_madvise\fP(): .nf _POSIX_C_SOURCE >= 200112L .fi .SH ОПИСАНИЕ Функция \fBposix_madvise\fP() позволяет приложению показывать системе свои ожидания при использовании памяти в диапазоне начиная с адреса \fIaddr\fP и длиной \fIlen\fP байт. Система может использовать это предложение для улучшения производительности доступа к памяти (или игнорировать), но вызов \fBposix_madvise\fP() не повлияет на семантику доступа к памяти в указанном диапазоне. .PP В аргументе \fIadvice\fP указывается одно из следующих значений: .TP \fBPOSIX_MADV_NORMAL\fP Приложение не даёт каких\-либо предложений о том, как будет использована память в указанном диапазоне. Поведение по умолчанию. .TP \fBPOSIX_MADV_SEQUENTIAL\fP Приложение будет последовательно обращаться к памяти в указанном диапазоне адресов, от младшего адреса к старшему. Следовательно, все страницы в этом диапазоне можно заранее прочитать и освободить сразу после доступа к ним. .TP \fBPOSIX_MADV_RANDOM\fP Приложение будет обращаться по указанному диапазону адресов в случайном порядке. То есть упреждающее чтение может быть менее эффективным, чем обычно. .TP \fBPOSIX_MADV_WILLNEED\fP Приложение обратится по указанному диапазону адресов в в ближайшем будущем. То есть от упреждающего чтения можно выиграть. .TP \fBPOSIX_MADV_DONTNEED\fP Приложение не будет обращаться по указанному диапазону адресов в в ближайшем будущем. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении \fBposix_madvise\fP() возвращает 0. При ошибке возвращается положительный номер ошибки. .SH ОШИБКИ .TP \fBEINVAL\fP Значение \fIaddr\fP не кратно размеру системной страницы или значение \fIlen\fP отрицательно. .TP \fBEINVAL\fP Неверное значение \fIadvice\fP. .TP \fBENOMEM\fP Адреса в указанном диапазоне частично или полностью лежат вне адресного пространства вызывающего. .SH ВЕРСИИ В POSIX.1 допускается, что реализация генерирует ошибку, если \fIlen\fP равно 0. В Linux допустимо значение \fIlen\fP равное 0 (ничего не делается). .PP В glibc эта функция реализована через вызов \fBmadvise\fP(2). Однако, начиная с glibc 2.6, \fBPOSIX_MADV_DONTNEED\fP для ничего не делается, так как соответствующее значение в \fBmadvise\fP(2), \fBMADV_DONTNEED\fP, имеет разрушительную семантику. .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ glibc 2.2. POSIX.1\-2001. .SH "СМ. ТАКЖЕ" \fBmadvise\fP(2), \fBposix_fadvise\fP(2) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov , kogamatranslator49 , Kogan, Max Is , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .