Rechercher une page de manuel
sync_file_range
Langue: ja
Version: 2006-07-05 (openSuse - 09/10/07)
Section: 2 (Appels système)
̾Á°
sync_file_range - sync a file segment with disk½ñ¼°
#define _GNU_SOURCE #include <fcntl.h> int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags);
ÀâÌÀ
sync_file_range() ¤ò»È¤¦¤È¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ fd ¤Ç»²¾È¤µ¤ì¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥¹¥¯¤È¤ÎƱ´ü¤Ë´Ø¤·¤Æ¡¢ ¤¤áºÙ¤«¤ÊÀ©¸æ¤¬²Äǽ¤È¤Ê¤ë¡£offset ¤Ï¡¢Æ±´ü¤ò¹Ô¤¦¥Õ¥¡¥¤¥ë¤ÎÎΰè¤Î³«»Ï¥Ð¥¤¥È¤Ç¤¢¤ë¡£ nbytes ¤Ë¤ÏƱ´ü¤ò¹Ô¤¦Îΰè¤ÎŤµ¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£ nbytes ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢ offset ¤«¤é¥Õ¥¡¥¤¥ëËöÈø¤Þ¤Ç¤ÎÁ´¥Ð¥¤¥È¤òƱ´ü¤¹¤ë¡£ Ʊ´ü¤Ï¥·¥¹¥Æ¥à¤Î¥Ú¡¼¥¸¥µ¥¤¥º¤Îñ°Ì¤Ç¹Ô¤ï¤ì¤ë¡£ offset ¤Ï¥Ú¡¼¥¸¶³¦¤Ë¤¢¤ï¤»¤ÆÀڤ겼¤²¤é¤ì¡¢ (offset+nbytes-1) ¤Ï¥Ú¡¼¥¸¶³¦¤Ë¤¢¤ï¤»¤ÆÀÚ¤ê¾å¤²¤é¤ì¤ë¡£
¥Ó¥Ã¥È¥Þ¥¹¥¯°ú¤¿ô flags ¤Ë¤Ï°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë:
- SYNC_FILE_RANGE_WAIT_BEFORE
- ²¿¤é¤«¤Î½ñ¤¹þ¤ß¤ò¹Ô¤¦Á°¤Ë¡¢»ØÄꤵ¤ì¤¿Îΰè¤Î¥Ú¡¼¥¸¤Ç ½ñ¤½Ð¤·¤ò¹Ô¤¦¤è¤¦¤Ë¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ë¤¹¤Ç¤ËÍ׵᤬ȯ¹Ô¤µ¤ì¤Æ¤¤¤ë ¥Ú¡¼¥¸¤Î½ñ¤½Ð¤·¤¬Á´¤Æ´°Î»¤¹¤ë¤Î¤òÂԤġ£
- SYNC_FILE_RANGE_WRITE
- »ØÄꤵ¤ì¤¿Îΰè¤Î¥Ú¡¼¥¸¤Ç¡¢½ñ¤½Ð¤·Í׵᤬ȯ¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤ Á´¤Æ¤Î dirty (¥¥ã¥Ã¥·¥å¤À¤±¤¬Êѹ¹¤µ¤ì¤Æ¤¤¤ë) ¥Ú¡¼¥¸¤Î ½ñ¤½Ð¤·¤ò³«»Ï¤¹¤ë¡£
- SYNC_FILE_RANGE_WAIT_AFTER
- ²¿¤é¤«¤Î½ñ¤¹þ¤ß¸å¤Ë¡¢»ØÄꤵ¤ì¤¿Îΰè¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤Î ½ñ¤½Ð¤·¤¬¹Ô¤ï¤ì¤ë¤Î¤òÂԤġ£
flags ¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢²¿¤â¤·¤Ê¤¤¤³¤È¤òɽ¤¹¡£
¾ÜºÙ
¤³¤ì¤é¤ÎÁàºî¤Ç¤Ï¤É¤ì¤â¥Õ¥¡¥¤¥ë¤Î¥á¥¿¥Ç¡¼¥¿¤Î½ñ¤½Ð¤·¤ò¹Ô¤ï¤Ê¤¤¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬³Î¼Â¤ËºîÀ®ºÑ¤ß¤Î¥Ç¥£¥¹¥¯¥Ö¥í¥Ã¥¯¤Î ¾å½ñ¤¤ò¼Â¹Ô¤·¤Ê¤¤¸Â¤ê¡¢¥¯¥é¥Ã¥·¥å¤Î¸å¤Ç¤â¥Ç¡¼¥¿¤¬ÍøÍѲÄǽ¤Ç¤¢¤ë ÊݾڤϤʤ¤¡£SYNC_FILE_RANGE_WAIT_BEFORE ¤È SYNC_FILE_RANGE_WAIT_AFTER ¤Ï I/O ¥¨¥é¡¼¤ä ENOSPC ¾õÂÖ¤ò¸¡½Ð¤·¡¢¸Æ¤Ó½Ð¤·¸µ¤Ë¤³¤ì¤é¤Î¾ðÊó¤òÊÖ¤¹¡£
flags ¤ÎÌò¤ËΩ¤Ä¥Ó¥Ã¥È¤ÎÁȤ߹ç¤ï¤»¤ò°Ê²¼¤Ë¼¨¤¹:
- SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE
- »ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¥Ú¡¼¥¸¤Ç¡¢ sync_file_range() ¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿ºÝ¤Ë dirty ¤Ç¤¢¤Ã¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤¬¡¢ ³Î¼Â¤Ë½ñ¤½Ð¤·ÂоݤȤʤë¤è¤¦¤Ë¤¹¤ë¡£ ¤³¤ì¤Ï¡¢start-write-for-data-integrity Áàºî (¥Ç¡¼¥¿´°Á´À³ÎÊݤΤ¿¤á¤Î½ñ¤¹þ¤ß³«»Ï¤ÎÁàºî) ¤Ç¤¢¤ë¡£
- SYNC_FILE_RANGE_WRITE
- »ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¥Ú¡¼¥¸¤Ç¡¢¸½ºß½ñ¤½Ð¤·Ãæ¤Ç¤Ê¤¤Á´¤Æ¤Î dirty ¥Ú¡¼¥¸¤Î ½ñ¤½Ð¤·¤ò³«»Ï¤¹¤ë¡£¤³¤ì¤ÏÈóƱ´ü¤Î¥Ç¥£¥¹¥¯¤Ø¤Î¥Õ¥é¥Ã¥·¥å (flush-to-disk) Áàºî¤Ç¤¢¤ë¡£¥Ç¡¼¥¿´°Á´À³ÎÊݤ¬É¬ÍפÊÁàºî¤È¤·¤Æ¤ÏŬÀڤǤϤʤ¤¡£
- SYNC_FILE_RANGE_WAIT_BEFORE (or SYNC_FILE_RANGE_WAIT_AFTER)
- »ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤ÎÁ´¤Æ¤Î¥Ú¡¼¥¸¤Î½ñ¤½Ð¤·¤Î´°Î»¤òÂԤġ£ ¤³¤Î¥Õ¥é¥°¤Ï¡¢Á°¤Ë¹Ô¤ï¤ì¤¿Áàºî SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE ¤Î¸å¤Ë»ÈÍѤǤ¡¢¤³¤ÎÁàºî¤Î´°Î»¤òÂÔ¤Á¡¢·ë²Ì¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
- SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | SYNC_FILE_RANGE_WAIT_AFTER
- ¤³¤ì¤Ï¡¢ÀΤ«¤é¤¢¤ë fdatasync(2) Áàºî¤½¤Î¤â¤Î¤Ç¤¢¤ë¡£ ¤³¤ì¤Ï write-for-data-integrity Áàºî (¥Ç¡¼¥¿´°Á´À³ÎÊݤΤ¿¤á¤Î½ñ¤¹þ¤ß) ¤Ç¤¢¤ê¡¢»ØÄꤵ¤ì¤¿ÈÏ°ÏÆâ¤Î¡¢ sync_file_range() ¤¬¸Æ¤Ð¤ì¤¿»þÅÀ¤Ç dirty ¤ÊÁ´¤Æ¤Î¥Ú¡¼¥¸¤¬ ¥Ç¥£¥¹¥¯¤Ë³ÊǼ¤µ¤ì¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¡£
ÊÖ¤êÃÍ
À®¸ù¤Î¾ì¹ç¡¢ sync_file_range() ¤Ï 0 ¤òÊÖ¤¹¡£¼ºÇԤξì¹ç¡¢-1 ¤òÊÖ¤·¡¢ error ¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£¥¨¥é¡¼
- EBADF
- fd ¤¬Í¸ú¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£
- EIO
- I/O ¥¨¥é¡¼¡£
- EINVAL
- flags ¤ËÉÔÀµ¤Ê¥Ó¥Ã¥È¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï offset ¤« nbytes ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
- ENOMEM
- ¥á¥â¥êÉÔ¤Ǥ¢¤ë¡£
- ENOSPC
- ¥Ç¥£¥¹¥¯ÎΰèÉÔ¤Ǥ¢¤ë¡£
- ESPIPE
- fd ¤¬¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯ °Ê³°¤Î¤â¤Î¤ò»Ø¤·¤Æ¤¤¤ë¡£
¥Ð¡¼¥¸¥ç¥ó
sync_file_range() ¤Ï¥«¡¼¥Í¥ë 2.6.17 ¤Ç Linux ¤ËÅо줷¤¿¡£½àµò
¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux Æȼ«¤Ç¤¢¤ê¡¢ °Ü¿¢À¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï»ÈÍѤòÈò¤±¤ë¤Ù¤¤Ç¤¢¤ë¡£´ØÏ¢¹àÌÜ
fdatasync(2), fsync(2), msync(2), sync(2), feature_test_macros(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre