|
|||||||
|
|
MMAPSection: Linux Programmer's Manual (2)Updated: 25 March 2000 Index Return to Main Contents ̾Á°mmap, munmap - ¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¤ò¥á¥â¥ê¤Ë¥Þ¥Ã¥×/¥¢¥ó¥Þ¥Ã¥×¤¹¤ë½ñ¼°#include <unistd.h>#include <sys/mman.h> #ifdef _POSIX_MAPPED_FILES void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset); int munmap(void *start, size_t length); ÀâÌÀmmap ´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ëµ½Ò»Ò (file descriptor) fd ¤Ç»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë(¤â¤·¤¯¤Ï¤½¤Î¾¤Î¥ª¥Ö¥¸¥§¥¯¥È)¤Î¡¢¥ª¥Õ¥»¥Ã¥È offset ¤«¤é length ¥Ð¥¤¥È¤ÎÈϰϤò¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤¹¤ë(¥á¥â¥ê¤ËÄ¥¤êÉÕ¤±¤ë)¡£ ¤³¤Î¤È¤¡¢¤Ê¤ë¤Ù¤¯¥á¥â¥ê¾å¤Î start ¥¢¥É¥ì¥¹¤«¤é¤Ï¤¸¤á¤ë¤è¤¦¤Ë¥Þ¥Ã¥×¤¹¤ë¡£¤³¤Î¥¢¥É¥ì¥¹¤Ï¼ÂºÝ¤Ï´Ø¿ô¤ËÂФ·¤Æ ¤Î¥Ò¥ó¥È¤Ç¤·¤«¤Ê¤¯¡¢Ä̾ï¤Ï 0 ¤ò»ØÄꤹ¤ë¡£ ¼ÂºÝ¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤¬¥Þ¥Ã¥×¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ï mmap ¤¬ÊÖ¤êÃͤ˥»¥Ã¥È¤¹¤ë¡£ °ú¿ô prot ¤Ë¤Ï¥á¥â¥êÊݸî¤ò¤É¤Î¤è¤¦¤Ë¹Ô¤Ê¤¦¤«¤ò»ØÄꤹ¤ë (¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥ó¥â¡¼¥É¤È¾×ÆÍ¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤)¡£ °Ê²¼¤Î¤è¤¦¤Ê¥Ó¥Ã¥È¥Ç¡¼¥¿¤¬Â¸ºß¤¹¤ë¡£
°ú¿ô flags ¤Ë¤Ï¡¢¥Þ¥Ã¥×¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¿¥¤¥×¡¢¥Þ¥Ã¥×»þ¤Î¥ª¥×¥·¥ç¥ó¤È¤È¤â¤Ë¡¢ ¥Þ¥Ã¥×¤µ¤ì¤¿¥Ú¡¼¥¸¥³¥Ô¡¼¤Ø¤ÎÊѹ¹¤ò¹Ô¤¨¤ë¤Î¤¬¸Æ¤Ó½Ð¤·¥×¥í¥»¥¹¤À¤±¤Ê¤Î¤«¡¢ ¤½¤ì¤È¤â¤½¤Î¥Ú¡¼¥¸¤ò»²¾È¤¹¤ë¾¤Î¥×¥í¥»¥¹¤«¤é¤â²Äǽ¤Ê¤Î¤«¤ò»ØÄꤹ¤ë¡£ °Ê²¼¤Î¤è¤¦¤Ê¥Ó¥Ã¥È¥Ç¡¼¥¿¤¬Â¸ºß¤¹¤ë¡£
MAP_SHARED ¤È MAP_PRIVATE ¤Ï¡¢É¬¤º¤É¤Á¤é¤«¤Ò¤È¤Ä¤ò »ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ °Ê¾å¤Î3¤Ä¤Î¥Õ¥é¥°¤Ï POSIX.1b (°ÊÁ°¤Î POSIX.4) ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£ Linux ¤Ë¤Ï¤³¤Î¾¤Ë MAP_DENYWRITE, MAP_EXECUTABLE, MAP_NORESERVE, MAP_LOCKED, MAP_GROWSDOWN and MAP_ANON(YMOUS) ¤¬¤¢¤ë¡£ offset ¤ÏÄ̾ï getpagesize(2) ¤ÎÊÖ¤¹¥Ú¡¼¥¸¥µ¥¤¥º¤ÎÀ°¿ôÇܤǤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¥·¥¹¥Æ¥à¥³¡¼¥ë munmap ¤Ï»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈϰϤΥޥåפò¾Ãµî¤·¡¢ °Ê¹ß¤Î¤½¤ÎÈÏ°ÏÆâ¤Ø¤Î»²¾È¤ò̵¸ú¤Ê¥á¥â¥ê»²¾È¤Ë¤¹¤ë¡£ ¤³¤ÎÎΰè¤Ï¡¢¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤¤Ë¤â¼«Æ°Åª¤Ë¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤ë¡£ °ìÊý¡¢¥Õ¥¡¥¤¥ëµ½Ò»Ò¤ò¥¯¥í¡¼¥º¤·¤Æ¤â¡¢¤³¤ÎÎΰè¤Ï¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤Ê¤¤¡£ ÊÖ¤êÃÍmmap ¤ÏÀ®¸ù¤¹¤ë¤È¥Þ¥Ã¥×¤µ¤ì¤¿ÎÎ°è¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ ¼ºÇÔ¤¹¤ë¤È MAP_FAILED (-1) ¤òÊÖ¤·¡¢ errno ¤¬¥¨¥é¡¼¤ÎÆâÍÆ¤Ë¤·¤¿¤¬¤Ã¤Æ¥»¥Ã¥È¤µ¤ì¤ë¡£ munmap ¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È -1 ¤òÊÖ¤·¡¢ errno ¤¬¥»¥Ã¥È¤µ¤ì¤ë (¤ª¤½¤é¤¯ EINVAL ¤Ë¤Ê¤ë¤À¤í¤¦)¡£¥¨¥é¡¼
¥Þ¥Ã¥×Îΰè¤ÎÍøÍѤ˺ݤ·¡¢°Ê²¼¤Î¥·¥°¥Ê¥ë¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ë:
½àµòSVr4, POSIX.1b (°ÊÁ°¤Ï POSIX.4), 4.4BSD¡£SVr4 ¤Ë¤Ï¾¤Ë ENXIO ¤È ENODEV ¤Î¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ½Ò¤¬¤¢¤ë¡£´ØÏ¢¹àÌÜgetpagesize(2), msync(2), shm_open(2), B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |