cs24-24fa mprotect

Introduction to Computing Systems (Fall 2024)

Name

mprotect - set protection on a region of memory

Synopsis

1
2
3
#include <sys/mman.h>

int mprotect(void *addr, size_t len, int prot);

Description

mprotect() changes the access protections for the calling process’s memory pages containing any part of the address range in the interval [addr, addr+len-1].
addr must be aligned to a page boundary.

If the calling process tries to access memory in a manner that violates the protections, then the kernel generates a SIGSEGV signal for the process.

prot is either PROT_NONE, PROT_READ, PROT_WRITE, or PROT_READ | PROT_WRITE.

Return Value

On success, mprotect() returns zero. On error, it returns -1, and errno is set appropriately.