mprotect(2) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

mprotect(2)

mprotect(2)                      System Calls                      mprotect(2)

NAME
       mprotect - set protection of memory mapping

SYNOPSIS
       #include <sys/mman.h>

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

DESCRIPTION
       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 speci‐
       fied  by  prot. The addr argument must be a multiple of the pagesize as
       returned by sysconf(3C). Legitimate values for prot  are  the  same  as
       those permitted for mmap(2) and are defined in <sys/mman.h> as:

       PROT_READ     /* page can be read */


       PROT_WRITE    /* page can be written */


       PROT_EXEC     /* page can be executed */


       PROT_NONE     /* page can not be accessed */




       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 mod‐
       ified.

RETURN VALUES
       Upon successful completion, mprotect() returns 0. Otherwise, it returns
       −1 and sets errno to indicate the error.

ERRORS
       The mprotect() function will fail if:

       EACCES    The  prot  argument  specifies a protection that violates the
                 access permission the process has to  the  underlying  memory
                 object.

                 There are addresses in the range [addr, addr + len) which are
                 part  of  a  shmget_osm(2) created shared memory segment, and
                 the prot argument would change the permissions  of  the  seg‐
                 ment.


       EINVAL    The  len  argument  has  a value equal to 0, or addr is not a
                 multiple of the page size as returned by sysconf(3C).


       ENOMEM    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.



       The mprotect() function may fail if:

       EAGAIN    The  address  range  [addr,  addr + len) includes one or more
                 pages that have been locked in memory and  that  were  mapped
                 MAP_PRIVATE; prot includes PROT_WRITE; and the system has in‐
                 sufficient  resources to reserve memory for the private pages
                 that may be created. These private pages may  be  created  by
                 store operations in the now-writable address range.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE  VALUE  _  Interface  StabilityCommitted  _  StandardSee  stan‐
       dards(7).


SEE ALSO
       mmap(2),  memcntl(2),  mlock(3C), mlockall(3C), plock(3C), sysconf(3C),
       attributes(7), standards(7)

HISTORY
       The mprotect() function has been included in all  Sun  and  Oracle  re‐
       leases of Solaris.

Oracle Solaris 11.4               30 Jan 2023                      mprotect(2)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3