MPROTECT(2) | System Calls | MPROTECT(2) |
mprotect - set protection of memory mapping
#include <sys/mman.h> int mprotect(void *addr, size_t len, int prot);
The mprotect() function changes the access protections on the mappings specified by the range [addr, addr + len), rounding len up to the next multiple of the page size as returned by sysconf(3C), to be that specified by prot. Legitimate values for prot are the same as those permitted for mmap(2) and are defined in <sys/mman.h> as:
PROT_READ
PROT_WRITE
PROT_EXEC
PROT_NONE
When mprotect() fails for reasons other than EINVAL, the protections on some of the pages in the range [addr, addr + len) may have been changed. If the error occurs on some page at addr2, then the protections of all whole pages in the range [addr, addr2] will have been modified.
Upon successful completion, mprotect() returns 0. Otherwise, it returns −1 and sets errno to indicate the error.
The mprotect() function will fail if:
EACCES
EINVAL
ENOMEM
The mprotect() function may fail if:
EAGAIN
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Standard |
mmap(2), mlock(3C), mlockall(3C), plock(3C), sysconf(3C), attributes(7), standards(7)
January 12, 1998 | OmniOS |