mprotect(2) mprotect(2)
NAME
mprotect - amend protection of memory mapping
SYNOPSIS
#include <sys/mman.h>
int mprotect(void *addr, sizet len, int prot);
DESCRIPTION
The function mprotect() changes the access protections on the mappings
specified by the range [addr, addr + len) to be that specified by
prot. Legitimate values for prot are the same as those permitted for
mmap() and are defined in sys/mman.h as:
PROTREAD /* page can be read */
PROTWRITE /* page can be written */
PROTEXEC /* page can be executed */
PROTNONE /* page can not be accessed */
ERRORS
The following error code descriptions are function-specific. You will
find a general description in introprm2(2) or in errno(5).
Under the following conditions, the function mprotect() fails and sets
errno to:
EACCES if prot specifies a protection that harms the access per-
mission the process has to the underlying memory object.
EAGAIN if prot specifies PROTWRITE over a MAPPRIVATE mapping
and there are insufficient memory resources to reserve for
locking the private page.
EINVAL if addr is not a multiple of the page size as returned by
sysconf().
EINVAL if the argument len has a value less than or equal to 0.
ENOMEM if addresses in the range [addr, addr + len) are invalid
for the address space of a process, or specify one or more
pages which are not mapped.
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 protec-
tions of all whole pages in the range [addr, addr2] will have been
modified.
RESULT
Upon successful completion the function mprotect() returns a value of
0; otherwise, it returns a value of -1 and sets errno to indicate an
error.
Page 1 Reliant UNIX 5.44 Printed 11/98
mprotect(2) mprotect(2)
SEE ALSO
memcntl(2), mmap(2), plock(2), mlock(3C), mlockall(3C), sysconf(3C),
mman(5).
Page 2 Reliant UNIX 5.44 Printed 11/98