Provided by: manpages-ru-dev_4.19.0-7_all bug

ИМЯ

       mincore - определяет, хранятся ли страницы в памяти

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <sys/mman.h>

       int mincore(void addr[.length], size_t length, unsigned char *vec);

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

       mincore():
           начиная с glibc 2.19:
               _DEFAULT_SOURCE
           в glibc 2.19 и старее:
               _BSD_SOURCE || _SVID_SOURCE

ОПИСАНИЕ

       mincore() возвращает вектор, описывающий страницы виртуальной памяти вызывающего процесса,
       которые находятся в физической памяти (core, RAM) и поэтому доступ к  ним  не  приводит  к
       обращению  к дискам. Ядро возвращает информацию о страницах, которые расположены начиная с
       адреса addr и занимают length байт.

       Значение аргумента addr должно быть кратно размеру системной страницы. Значение  аргумента
       length  может быть не кратно размеру страницы, но так как возвращается информация по целым
       страницам, length округляется до следующего значения, кратного  размеру  страницы.  Размер
       страницы (PAGE_SIZE) может быть получен с помощью sysconf(_SC_PAGESIZE).

       Аргумент vec должен указывать на массив размером не менее (length+PAGE_SIZE-1) / PAGE_SIZE
       байт. При возврате самый  младший  значимый  бит  каждого  байта  будет  установлен,  если
       соответствующая  страница  находится в памяти, и будет сброшен, если это не так. (Значения
       других битов каждого байта не определено; эти биты  зарезервированы  для  использования  в
       будущем.)  Естественно,  информация,  возвращаемая  в  vec,  носит  моментальный характер:
       страницы, которые не заблокированы в памяти, могут быть удалены из  неё  или  добавлены  в
       любой момент, и содержимое vec может стать неактуальным уже на момент возврата из вызова.

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

       On  success,  mincore()   returns  zero.   On  error,  -1 is returned, and errno is set to
       indicate the error.

ОШИБКИ

       EAGAIN ядру временно не хватает ресурсов.

       EFAULT vec указывает на неправильный адрес.

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

       ENOMEM Значение length больше чем (TASK_SIZE - addr). (Это может произойти, если в  length
              указано  отрицательное  значение,  так  как это значение воспринимается как большое
              беззнаковое  целое.)  В  Linux  2.6.11  и  более  ранних  версиях  в  этом   случае
              возвращалась ошибка EINVAL.

       ENOMEM С адреса addr по адрес addr + length содержится память без отображения.

ВЕРСИИ

       Доступен начиная с Linux 2.3.99pre1 и glibc 2.2.

СТАНДАРТЫ

       Системный  вызов  mincore()  не  определён  в  стандарте  POSIX.1  и  отсутствует  во всех
       реализациях UNIX.

ДЕФЕКТЫ

       Before Linux 2.6.21,  mincore()   did  not  return  correct  information  for  MAP_PRIVATE
       mappings, or for nonlinear mappings (established using remap_file_pages(2)).

СМ. ТАКЖЕ

       fincore(1), madvise(2), mlock(2), mmap(2), posix_fadvise(2), posix_madvise(3)

ПЕРЕВОД

       Русский  перевод  этой страницы руководства был сделан aereiae <aereiae@gmail.com>, Alexey
       <a.chepugov@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>,  Dmitriy  S.  Seregin
       <dseregin@59.ru>,       Dmitry      Bolkhovskikh      <d20052005@yandex.ru>,      ITriskTI
       <ITriskTI@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>,  Иван
       Павлов <pavia00@gmail.com> и Малянов Евгений Викторович <maljanow@outlook.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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