NAME
mprotect
—
control the protection of
pages
SYNOPSIS
#include
<sys/types.h>
#include <sys/mman.h>
int
mprotect
(void
*addr, size_t len,
int prot);
DESCRIPTION
The
mprotect
()
system call sets the access protections for the pages that contain the
address range addr through addr
+ len - 1 (inclusive). If len is
0, no action is taken on the page that contains
addr.
Not all implementations will guarantee protection on a page basis; the granularity of protection changes may be as large as an entire region. Nor will all implementations guarantee to give exactly the requested permissions; more permissions may be granted than requested by prot.
The protections (region accessibility) are specified in the prot argument by OR'ing the following values:
PROT_EXEC
- Pages may be executed.
PROT_READ
- Pages may be read.
PROT_WRITE
- Pages may be written.
PROT_NONE
- No permissions.
RETURN VALUES
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
SEE ALSO
HISTORY
The mprotect
() function first appeared in
4.4BSD.
CAVEATS
The OpenBSD implementation of
mprotect
() does not require
addr to be page-aligned, although other
implementations may.