mapped_regionКласс представляет собой часть или область, созданную из объекта памяти.
ОС может отображать область больше запрашиваемой, поскольку область должна быть кратна размеру страницы, ноmapped_regionвсегда будет ссылаться на область, указанную пользователем.
Создает область отображения отображенной памяти «картирование», начиная со смещения «зачет», и размер отображения будет «размером». Картографирование может быть открыто только для чтения, чтения-записи или копирования-на-записи.
Если адрес указан, то и смещение, и адрес должны быть кратны размеру страницы.
Карта создается с использованием «default_map_options». Этот флаг зависит от ОС и не должен быть изменен, если пользователю не нужно указать специальные параметры.
В системах Windows «map_options» — значение DWORD, передаваемое как «dwDesiredAccess» на «MapViewOfFileEx». Если «default_map_options» пройден, он инициализируется до нуля. «map_options» (карта_опционы) XORed with FILE_MAP_[COPY | READ |WRITE].
В системах UNIX и POSIX отображениях «map_options» представляет собой значение int, передаваемое как «флаги» на «mmap». Если указано «default_map_options», оно инициализируется в MAP_. NOSYNC, если такой вариант существует, и до нуля в противном случае. «map_options» с поддержкой MAP_ PRIVATE или MAP_SHARED.
В системах UNIX и XSI отображениях «map_options» представляет собой значение int, передаваемое как «shmflg» на «shmat». Если указана «default_map_options», она инициализируется до нуля. При необходимости «map_options» XORed with SHM_RDONLY.
ОС может выделять больше страниц, чем размер/размер страницы(), но get_address() всегда возвращает адрес, пройденный в этой функции (если не нулевой) и get_size() возвращает указанный размер.
<
mapped_region();
>
Конструктор по умолчанию. Адрес будет 0 (nullptr). Размер будет 0. Не бросать
Перейдите к заданию. Если у этого есть область, нанесенная на карту памяти, она будет уничтожена, и она возьмет на себя ответственность за область, нанесенную на карту памяти «другого».
Подача на диск байтового диапазона в пределах отображенной памяти. Если «синхронизация» верна, функция вернется до завершения операции промывки, если «синхронизация» ложна, функция вернется после того, как данные были записаны в базовое устройство (т.е. в отображенных файлах кэшированная информация ОС записывается на диск). Никогда не бросай. Возврат ложный, если операция не была выполнена.
Сокращает текущую картографическую область. Если после сжатия больше не требуется отображаемая ранее страница памяти, доступ к этой странице может вызвать сбой сегментации. В зависимости от операционной системы эта операция может выйти из строя (общая память XSI), она может разорвать хранилище и освободить часть виртуального адресного пространства (например,POSIX) или эта функция может освободить некоторое физическое пространство памяти, освобождающее любое виртуальное адресное пространство (Windows). Вернусь к успеху. Никогда не бросай.
<
booladvise(advice_typesadvise);
>
Консультирует реализацию по ожидаемому поведению приложения в отношении данных в регионе. Реализация может использовать эту информацию для оптимизации обработки данных региона. Эта функция не влияет на семантику доступа к памяти в регионе, хотя может влиять на производительность доступа. Если тип рекомендации не известен реализации, функция возвращается ложной. Правда в другом.
mapped_region public static functions
<
staticstd::size_tget_page_size();
>
Возвращает размер страницы. Этот размер является минимальной памятью, которая будет использоваться системой при отображении отображаемого источника памяти и будет ограничивать адрес и смещение для отображения.
Статья Class mapped_region раздела The Boost C++ Libraries BoostBook Documentation Subset Indexes and Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.