Книга: Программирование для Linux. Профессиональный подход
8.9. Функция mprotect(): задание прав доступа к памяти
8.9. Функция mprotect(): задание прав доступа к памяти
В разделе 5.3, "Отображение файлов в памяти", рассказывалось о том, как осуществляется отображение файла в памяти. Вспомните, что третьим аргументом функции mmap()
является битовое объединение флагов доступа: флаги PROT_READ
, PROT_WRITE
и PROT_EXEC
задают права чтения, записи и выполнения файла, а флаг PROT_NONE
означает запрет доступа. Если программа пытается выполнить над отображаемым файлом недопустимую операцию, ей посылается сигнал SIGSEGV
(нарушение сегментации), который приводит к завершению программы.
После того как файл был отображен в памяти, изменить права доступа к нему позволяет функция mprotect()
. Ее аргументами является адрес области памяти, размер области и новый набор флагов доступа. Область должна состоять из целых страниц, т.е. начинаться и заканчиваться на границе между страницами.
- Правила творческой лени
- Права для выполнения резервного копирования
- Правильная стратегическая последовательность
- Ничего, кроме правды: поведение потребителей
- Заполнение справочников и каталогов
- Неисправности источника бесперебойного питания
- 2.1.3. Функция getopt_long()
- Неисправности акустических систем
- Основные "рычаги" управления производительностью
- Права
- Раздача прав
- Аннулирование прав