msync

Autres langues

Langue: ja

Version: 2003-08-21 (openSuse - 09/10/07)

Section: 2 (Appels système)

̾Á°

msync - ¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤·¤¿¥á¥â¥ê¤ÈƱ´ü¤µ¤»¤ë

½ñ¼°

#include <sys/mman.h>

int msync(void *start, size_t length, int flags);

ÀâÌÀ

msync() ¤Ï mmap(2) ¤ò»È¤Ã¤Æ¥á¥â¥ê¤Ë¥Þ¥Ã¥×¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¡¢ ¥á¥â¥ê¾å¤Î¥³¥Ô¡¼¤Ë¤Ê¤µ¤ì¤¿Êѹ¹¤ò¥Ç¥£¥¹¥¯¤ËÈ¿±Ç¤µ¤»¤ë¡£ ¤³¤Î´Ø¿ô¤ò»ÈÍѤ·¤Ê¤¤¤È¡¢ munmap(2) ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤Þ¤ÇÊѹ¹¤¬½ñ¤­Ìᤵ¤ì¤ëÊݾڤϤʤ¤¡£ ¤è¤êÀµ³Î¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¤¦¤Á start ¤«¤é»Ï¤Þ¤êŤµ length ¤Î¥á¥â¥êÎΰè¤ËÂбþ¤¹¤ëÉôʬ¤¬¹¹¿·¤µ¤ì¤ë¡£

flags °ú¿ô¤Ë¤Ï¥Ó¥Ã¥È MS_ASYNC, MS_SYNC, MS_INVALIDATE ¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ MS_ASYNC ¤È MS_SYNC ¤òƱ»þ¤Ë»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ MS_ASYNC ¤Ï¹¹¿·¤òͽÄê¤ËÁȤ߹þ¤à¤³¤È¤òɽ¤·¡¢¸Æ¤Ó½Ð¤·¤Ïľ¤Á¤ËÊ֤롣 MS_SYNC ¤Ï¹¹¿·¤òÍ׵ᤷ¡¢¹¹¿·¤¬´°Î»¤¹¤ë¤Þ¤ÇÂԤġ£ MS_INVALIDATE ¤Ï(¤¿¤Ã¤¿º£½ñ¤­¹þ¤ó¤À¿·¤·¤¤Ãͤǥޥåԥ󥰤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë) Ʊ¤¸¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¾¤Î¥Þ¥Ã¥Ô¥ó¥°¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤òÍ׵᤹¤ë¡£

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç¡¢ 0 ¤¬Ê֤롣¥¨¥é¡¼¤Î¾ì¹ç¡¢ -1 ¤¬Ê֤ꡢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

EBUSY
I flags ¤Ë MS_INVALIDATE ¤¬»ØÄꤵ¤ì¤¿¤¬¡¢»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹ÈÏ°Ï¤Ë ¥í¥Ã¥¯¤¬Â¸ºß¤¹¤ë¡£
EINVAL
start ¤¬ PAGESIZE ¤ÎÇÜ¿ô¤Ç¤Ê¤¤¡£¤Þ¤¿¤Ï¡¢ flags ¤Ë MS_ASYNC ¡¢ MS_INVALIDATE ¡¢ MS_SYNC °Ê³°¤Î¥Ó¥Ã¥È¤¬ÀßÄꤵ¤ì¤¿¡£ ¤Þ¤¿¤Ï¡¢ flags ¤Ë MS_SYNC ¤È MS_ASYNC ¤ÎξÊý¤¬ÀßÄꤵ¤ì¤¿¡£
ENOMEM
»ØÄꤵ¤ì¤¿¥á¥â¥ê (¤Þ¤¿¤Ï¤½¤Î°ìÉô) ¤¬¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

½àµò

POSIX.1-2001.

¤³¤Î´Ø¿ô¤Ï Linux 1.3.21 ¤ÇƳÆþ¤µ¤ì¡¢ ENOMEM ¤Ç¤Ï¤Ê¤¯ EFAULT ¤¬»È¤ï¤ì¤Æ¤¤¤¿¡£ ¤³¤ì¤Ï Linux 2.4.19 ¤Ç POSIX ¤Ë¤ª¤±¤ëÃÍ ENOMEM ¤ËÊѹ¹¤µ¤ì¤¿¡£

²ÄÍÑÀ­

msync() ¤¬»ÈÍѲÄǽ¤Ê POSIX ¥·¥¹¥Æ¥à¤Ç¤Ï _POSIX_MAPPED_FILES ¤È _POSIX_SYNCHRONIZED_IO ¤ÎξÊý¤¬ <unistd.h> ¤Ç 0 ¤è¤êÂ礭¤¤ÃͤËÄêµÁ¤µ¤ì¤ë¡£ ( sysconf(3) ¤ò»²¾È¤¹¤ë¤³¤È¡£ )

´ØÏ¢¹àÌÜ

mmap(2)
B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.