Penguin
Note: You are viewing an old revision of this page. View the current version.

MPROTECT

MPROTECT

NAME SYNOPSIS DESCRIPTION RETURN VALUE ERRORS EXAMPLE CONFORMING TO SEE ALSO


NAME

mprotect - control allowable accesses to a region of memory

SYNOPSIS

#include addr, size_t len, int prot);

DESCRIPTION

mprotect controls how a section of memory may be accessed. If an access is disallowed by the protection given it, the program receives a SIGSEGV.

prot is a bitwise-or of the following values:

PROT_NONE

The memory cannot be accessed at all.

PROT_READ

The memory can be read.

PROT_WRITE

The memory can be written to.

PROT_EXEC

The memory can contain executing code.

The new protection replaces any existing protection. For example, if the memory had previously been marked PROT_READ, and mprotect is then called with prot PROT_WRITE, it will no longer be readable.

RETURN VALUE

On success, mprotect returns zero. On error, -1 is returned, and errno is set appropriately.

ERRORS

EINVAL

addr is not a valid pointer, or not a multiple of PAGESIZE.

EFAULT

The memory cannot be accessed.

EACCES

The memory cannot be given the specified access. This can happen, for example, if you mmap(2) a file to which you have read-only access, then ask mprotect to mark it PROT_WRITE.

ENOMEM

Internal kernel structures could not be allocated.

EXAMPLE

  1. include

CONFORMING TO

SVr4, POSIX.1b (formerly POSIX.4). SVr4 defines an additional error code EAGAIN. The SVr4 error conditions don't map neatly onto Linux's. POSIX.1b says that mprotect can be used only on regions of memory obtained from mmap(2).

SEE ALSO

mmap(2)


This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.