|
|||||||
|
|
MREMAPSection: Linux Programmer's Manual (2)Updated: 1996-04-12 Index Return to Main Contents ̾Á°mremap - ²¾ÁÛ¥á¥â¥ê¡¦¥¢¥É¥ì¥¹¤òºÆ¥Þ¥Ã¥×¤¹¤ë½ñ¼°#include <unistd.h>#include <sys/mman.h> void * mremap(void * old_address, size_t old_size , size_t new_size, unsigned long flags); ÀâÌÀmremap ¤Ï¸ºß¤¹¤ë¥á¥â¥ê¡¦¥Þ¥Ã¥×¤ò³ÈÄ¥(¤Þ¤¿¤Ï½Ì¾®)¤¹¤ë¡£ Ʊ»þ¤Ë¤½¤ì¤é¤Ï°Üư¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤(flags °ú¤¿ô¤È ²Äǽ¤Ê²¾ÁÛ(virtual)¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤ë)¡£old_address ¤Ï³ÈÄ¥(¤Þ¤¿¤Ï½Ì¾®)¤·¤è¤¦¤È¤¹¤ë²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯ ¤Î¸µ¤Î¥¢¥É¥ì¥¹¡£old_address ¤Ï¥Ú¡¼¥¸¶³¦(aligne)¤Ë¹ç¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð ¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£old_size ¤Ï¸µ¤Î²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯¤Î ¥µ¥¤¥º¡£new_size ¤ÏÍ׵᤹¤ëÊѹ¹¸å¤Î²¾ÁÛ¥á¥â¥ê¡¦¥Ö¥í¥Ã¥¯¤Î¥µ¥¤¥º¡£ flags °ú¤¿ô¤Ï¥Õ¥é¥°¤Î¥Ó¥Ã¥È¥Þ¥Ã¥×¤Ç¤¢¤ë¡£ Linux ¤Ç¤Ï¥á¥â¥ê¤Ï¥Ú¡¼¥¸¤Ëʬ³ä¤µ¤ì¤ë¡£¥æ¡¼¥¶¡¼¡¦¥×¥í¥»¥¹¤Ï(°ì¤Ä¤Þ¤¿¤Ï) Ê£¿ô¤Î¥ê¥Ë¥¢(linear)¤Ê²¾ÁÛ¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È(segment)¤ò»ý¤Ä¡£ ¤½¤ì¤¾¤ì¤Î²¾ÁÛ¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï(¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Ë) °ì¤Ä¤Þ¤¿¤Ï¤½¤ì°Ê¾å¤Î¥Þ¥Ã¥×¤µ¤ì¤¿¼Â(real)¥á¥â¥ê¡¦¥Ú¡¼¥¸¤ò»ý¤Ä¡£ ¤½¤ì¤¾¤ì¤Î²¾ÁÛ¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ï¤½¤ì¼«¿È¤ÎÊݸî(¥¢¥¯¥»¥¹¸¢)¤ò»ý¤Ä¡¢ ¤³¤ì¤Ï¥á¥â¥ê¤¬ÉÔÀµ¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤¿¾ì¹ç(Î㤨¤ÐÆÉ¤ß¹þ¤ßÀìÍѤΥ»¥°¥á¥ó¥È¤Ë ½ñ¤¹þ¤ó¤À¾ì¹ç)¡¢¥»¥°¥á¥ó¥Æ¡¼¥·¥ç¥ó¿¯³²(segmentation violation)¤ò °ú¤µ¯¤³¤¹¡£ mremap ¤Ï Linux ¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ëÊý¼°¤ò»ÈÍѤ¹¤ë¡£mremap ¤Ï ²¾ÁÛ¥¢¥É¥ì¥¹¤È¥á¥â¥ê¡¦¥Ú¡¼¥¸¤Î¥Þ¥Ã¥×¤òÊѹ¹¤¹¤ë¡£¤³¤ì¤ÏÈó¾ï¤Ë¸úΨŪ¤Ê realloc ¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£ ¥Õ¥é¥°
ÊÖ¤êÃÍÀ®¸ù¤·¤¿¾ì¹ç¤Ï mremap ¤Ï¿·¤·¤¤²¾ÁÛ¥á¥â¥êÎÎ°è¤Ø¤Î¥Ý¥¤¥ó¥¿¡¼¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤¬ÊÖ¤µ¤ì¡¢errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£¥¨¥é¡¼
½àµò¤³¤Î¥³¡¼¥ë¤Ï Linux ÆÃͤǤ¢¤ê¡¢°Ü¿¢¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï ¤¤¤±¤Ê¤¤¡£4.2BSD ¤Ï (¼ÂºÝ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤¿¤ï¤±¤Ç¤Ï¤Ê¤¤¤¬) Á´¤¯°Û¤Ã¤¿Êý¼°(semantics)¤Ë¤è¤ë mremap(2) ¥³¡¼¥ë¤ò»ý¤Ã¤Æ¤¤¤ë¡£´ØÏ¢¹àÌÜgetpagesize(2), realloc(3), malloc(3), brk(2), sbrk(2), mmap(2) ¥Ú¡¼¥¸Ê¬³ä¤µ¤ì¤¿¥á¥â¥ê¤Ë´Ø¤·¤Æ¤Î¤è¤ê¾Ü¤·¤¤ÀâÌÀ¤Ï ¤¢¤Ê¤¿¤Î¹¥¤ß¤Î OS ¤Î¶µ²Ê½ñ¤ò»²¾È¤¹¤ë¤³¤È (Modern Operating Systems by Andrew S. Tannenbaum, Inside Linux by Randolf Bentson, The Design of the UNIX Operating System by Maurice J. Bach.)
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. |