Системный вызов mprotect в Linux контролирует доступ к области памяти. 1 Он изменяет параметры доступа страниц памяти вызывающего процесса, которые содержатся, даже частично, в адресном диапазоне [addr, addr+len-1]. 2 Значение addr должно быть выровнено на границу страницы. 2
Параметр prot представляет собой комбинацию флагов доступа: 2
Новые установки защиты заменяют предыдущие. 1 Например, если память была ранее помечена PROTREAD, а mprotect вызывается с помощью параметра prot, равного PROTWRITE, то данные, находящиеся в памяти, невозможно будет считывать. 1
Если вызывающий процесс нарушает защиту доступа к памяти, то ядро посылает процессу сигнал SIGSEGV. 2
При удачном завершении вызова возвращаемое значение равно нулю. 1 При ошибке оно равно -1, а переменной errno присваивается номер ошибки. 1