munmap_flags_peer()

Освободить ранее смаппированную область памяти другого процесса, предоставляя больше контроля в сравнении с munmap_peer()

Прототип:

#include <sys/mman.h>
int munmap_flags_peer( pid_t pid,
void *addr,
size_t len,
unsigned flags );

Аргументы:

pid
Идентификатор процесса, чьему адресному пространству соответствует адрес addr. В качестве pid может быть задан 0, что соответствует текущему процессу.
addr
Адрес начала области памяти.
len
Длина ресурса в байтах.
flags
Флаги, уточняющие процедуру освобождения памяти:

Библиотека:

libc

Описание:

Функция munmap_flags_peer() удаляет маппирование страниц памяти процесса pid, начиная с адреса addr и длиной len байт, с округлением вверх до конца страницы памяти. Последующие обращения к этим страницам памяти в целевом процессе будут приводить к отправке процессу сигнала SIGSEGV.

Если соответствующих параметрам запроса страниц памяти не обнаружено, вызов munmap_flags_peer() не будет иметь эффекта.

Имеются некоторые взаимодействия аргумента flags с флагом MAP_NOINIT функции mmap(), равно как и с procnto-*, в следующих аспектах:

Возвращаемое значение:

0
Успешное завершение.
-1
Функция завершилась с ошибкой (устанавлено знаение errno).

Коды ошибок:

EINVAL
Адрес в пределах заданного диапазона выходит за границы разрешенного диапазона адресного пространства процесса.
ENOSYS
Функция munmap_flags_peer() не поддерживается в текущей реализации.

Классификация:

ЗОСРВ «Нейтрино»

Поддерживается, начиная с ЗОСРВ «Нейтрино» редакции 2020

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

mmap(), mmap64(), mmap64_peer(), munmap(), munmap_peer(), munmap_flags()

procnto-* в Справочнике по Утилитам




Предыдущий раздел: Описание API системной библиотеки