lockf

Autres langues

Langue: ja

Version: 2002-04-22 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

lockf - ³«¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ POSIX ¥í¥Ã¥¯¤òŬÍÑ¡¦¥Æ¥¹¥È¡¦²ò½ü¤¹¤ë¡£

½ñ¼°

#include <unistd.h>

int lockf(int fd, int cmd, off_t len);

ÀâÌÀ

³«¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¥»¥¯¥·¥ç¥ó¤ËÂФ·¤Æ¡¢ POSIX ¥í¥Ã¥¯¤ÎŬÍÑ¡¦¥Æ¥¹¥È¡¦²ò½ü¤ò¤¹¤ë¡£ ¥Õ¥¡¥¤¥ë¤Ï fd ¤Ç»ØÄꤵ¤ì¤ë¡£ ¤³¤ì¤Ï½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£ ¥¢¥¯¥·¥ç¥ó¤Ï cmd ¤Ç»ØÄꤵ¤ì¤ë¡£ pos ¤ò¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃ֤Ȥ¹¤ë¤È¡¢ len ¤¬Àµ¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¥Ð¥¤¥È°ÌÃÖ pos..pos+len-1 ¤Ç¤¢¤ë¡£ len ¤¬Éé¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¥Ð¥¤¥È°ÌÃÖ pos-len..pos-1 ¤Ç¤¢¤ë¡£ len ¤¬ 0 ¤Î¾ì¹ç¡¢¥»¥¯¥·¥ç¥ó¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤«¤é̵¸ÂÂç¤Þ¤Ç¤È¤Ê¤ë (¤Ä¤Þ¤ê¸½ºß¤Î¡¢¤¢¤ë¤¤¤ÏÊѹ¹¤µ¤ì¤¿¾ì¹ç¤Ï¾­Íè¤Î¡¢¥Õ¥¡¥¤¥ë½ªÃ¼°ÌÃÖ¤Þ¤Ç)¡£ ¤É¤Î¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¡¢¥»¥¯¥·¥ç¥ó¤Ï°ÊÁ°¤Î¥Õ¥¡¥¤¥ë½ªÃ¼¤è¤ê¤â³ÈÂ礵¤ì¤¦¤ë¡£

Linux ¤Ç¤Ï¡¢¤³¤Î´Ø¿ô¤Ïñ¤Ë fcntl(2) ¤Ø¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£ (°ìÈ̤ˤϡ¢ lockf() ¤È fcntl(2) ¤Î´Ø·¸¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£)

Í­¸ú¤Ê¥ª¥×¥·¥ç¥ó¤ò°Ê²¼¤Ëµó¤²¤ë¡£

F_LOCK
¥Õ¥¡¥¤¥ë¤Î»ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤ËÇÓ¾¥í¥Ã¥¯¤òÀßÄꤹ¤ë¡£ ¤½¤Î¥»¥¯¥·¥ç¥ó (¤Î°ìÉô) ¤¬´û¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¡¢ Á°¤Î¥í¥Ã¥¯¤¬²ò½ü¤µ¤ì¤ë¤Þ¤Ç´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£ ¤³¤Î¥»¥¯¥·¥ç¥ó¤¬Á°¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¥»¥¯¥·¥ç¥ó¤È½Å¤Ê¤Ã¤¿¾ì¹ç¡¢ 2 ¤Ä¤Î¥»¥¯¥·¥ç¥ó¤Ï·ë¹ç¤µ¤ì¤ë¡£ ¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥¯¥í¡¼¥º¤¹¤ë¤È¡¢ ¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤Ï²òÊü¤µ¤ì¤ë¡£ »Ò¥×¥í¥»¥¹¤Ï¥í¥Ã¥¯¤ò·Ñ¾µ¤·¤Ê¤¤¡£
F_TLOCK
F_LOCK ¤ÈƱÍͤǤ¢¤ë¤¬¡¢¥Õ¥¡¥¤¥ë¤¬´û¤Ë¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ ´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ï¥Ö¥í¥Ã¥¯¤ò¹Ô¤ï¤º¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£
F_ULOCK
¥Õ¥¡¥¤¥ë¤Î»ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤Î¥í¥Ã¥¯¤ò²ò½ü¤¹¤ë¡£ ¤³¤ì¤Ë¤è¤ê¥í¥Ã¥¯¤µ¤ì¤¿¥»¥¯¥·¥ç¥ó¤¬ 2 ¤Ä¤Ëʬ³ä¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
F_TEST
¼¡¤Î¤è¤¦¤Ë¥í¥Ã¥¯¤Î¥Æ¥¹¥È¤ò¤¹¤ë¡£ »ØÄꤵ¤ì¤¿¥»¥¯¥·¥ç¥ó¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ ¤³¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢0 ¤òÊÖ¤¹¡£ ¾¤Î¥×¥í¥»¥¹¤¬¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¾ì¹ç¡¢-1 ¤òÊÖ¤·¡¢ errno ¤ò EAGAIN (¤¤¤¯¤Ä¤«¤Î¾¤Î¥·¥¹¥Æ¥à¤Ç¤Ï EACCES) ¤ËÀßÄꤹ¤ë¡£

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç¡¢0 ¤¬ÊÖ¤µ¤ì¤ë¡£ ¥¨¥é¡¼¤Î¾ì¹ç¡¢-1 ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬¥¨¥é¡¼¤ËÂбþ¤·¤¿ÃͤËÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

EACCES ¤â¤·¤¯¤Ï EAGAIN
¥Õ¥¡¥¤¥ë¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¡¢ F_TLOCK ¤Þ¤¿¤Ï F_TEST ¥Õ¥é¥°¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¡£ ¤Þ¤¿¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬Â¾¤Î¥×¥í¥»¥¹¤Ë¤è¤ê¥á¥â¥ê¡¼¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ë¡¢ Áàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£
EBADF
fd ¤¬³«¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£
EDEADLK
¥³¥Þ¥ó¥É¤¬ T_LOCK ¤Ç¤¢¤ê¡¢¤³¤Î¥í¥Ã¥¯Áàºî¤¬¥Ç¥Ã¥É¥í¥Ã¥¯¤ò°ú¤­µ¯¤³¤·¤Æ¤¤¤ë¡£
EINVAL
fd ¤Ë̵¸ú¤ÊÁàºî¤¬»ØÄꤵ¤ì¤¿¡£
ENOLCK
Èó¾ï¤Ë¿¤¯¤Î¥»¥°¥á¥ó¥È¥í¥Ã¥¯¤¬³«¤«¤ì¡¢¥í¥Ã¥¯¥Æ¡¼¥Ö¥ë¤¬°î¤ì¤¿¡£

½àµò

SVr4, POSIX.1-2001

´ØÏ¢¹àÌÜ

fcntl(2), flock(2)
/usr/src/linux/Documentation ¤Ë¤¢¤ë locks.txt ¤È mandatory.txt ¤â»²¾È¤¹¤ë¤³¤È¡£