VMS Help  —  CRTL  mprotect
    Modifies access protections of memory mapping. This function is
    reentrant.

    Format

      #include  <mman.h>

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

1  –  Arguments

 addr

    The address of the region that you want to modify.

 len

    The length, in bytes, of the region that you want to modify.

 prot

    Access permission, as defined in the <mman.h> header file.
    Specify either PROT_NONE, PROT_READ, or PROT_WRITE.

2  –  Description

    The mprotect function modifies the access protection of a mapped
    file or shared memory region.

    The addr and len arguments specify the address and length, in
    bytes, of the region that you want to modify. The len argument
    must be a multiple of the page size as returned by sysconf(_SC_
    PAGE_SIZE). If len is not a multiple of the page size as returned
    by sysconf(_SC_PAGE_SIZE), the length of the region is rounded up
    to the next multiple of the page size.

    The prot argument specifies access permissions for the mapped
    region. Specify one of the following:

    PROT_NONE      No access
    PROT_READ      Read-only
    PROT_WRITE     Read/Write access

    The mprotect function does not modify the access permission of
    any region that lies outside of the specified region, except that
    the effect on addresses between the end of the region, and the
    end of the page containing the end of the region, is unspecified.

    If the mprotect function fails under a condition other than that
    specified by EINVAL, the access protection of some of the pages
    in the range [addr, addr + len] can change. Suppose the error
    occurs on some page at an addr2; mprotect can modify protections
    of all whole pages in the range [addr, addr2].

    See also sysconf.

3  –  Return Values

    0                  Indicates success.
    -1                 Indicates an error; errno is set to one of the
                       following values:

                       o  EACCESS - The prot argument specifies a
                          protection that conflicts with the access
                          permission set for the underlying file.

                       o  EINVAL - The prot argument is invalid, or
                          the addr argument is not a multiple of the
                          page size as returned by sysconf(_SC_PAGE_
                          SIZE).

                       o  EFAULT - The range [addr, addr + len]
                          includes an invalid address.
Close Help