|
|
FCNTL
Section: Linux Programmer's Manual (2) Updated: 12 July 1999 Index
Return to Main Contents
̾Á°
fcntl - ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÁàºî¤¹¤ë
½ñ¼°
#include <unistd.h>
#include <fcntl.h>
int fcntl(int fd, int cmd);
int fcntl(int fd, int cmd, long arg);
int fcntl(int fd, int cmd, struct flock *lock);
ÀâÌÀ
fcntl
¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼
fd
¤Ë´Ø¤¹¤ë¤µ¤Þ¤¶¤Þ¤ÊÁàºî¤ò¹Ô¤¦¡£Í׵᤹¤ëÁàºî¤Î¼ïÎà¤Ï
cmd
¤Ë¤è¤Ã¤Æ·è¤Þ¤ë:
- F_DUPFD
-
ÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¡¢
arg
¤ËÅù¤·¤¤¤«¡¢¤è¤êÂ礤ʿô¤Î¤¦¤ÁºÇ¾®¤Î¤â¤Î¤ò¸«¤Ä¤±¤Æ¡¢
fd
¤Î¥³¥Ô¡¼¤Ë¤¹¤ë¡£¤³¤ì¤Ï»ØÄꤷ¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤½¤Î¤â¤Î¤ò»ÈÍѤ¹¤ë
dup2(2)
¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£
¸Å¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤È¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ÏƱ¤¸¤â¤Î¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤¤ë¡£
¤½¤ì¤é¤Ï¥í¥Ã¥¯ (lock)¡¢¥Õ¥¡¥¤¥ë°ÌÃ֥ݥ¤¥ó¥¿¡¼¡¢¥Õ¥é¥°¤ò¶¦Í¤¹¤ë¡£
Î㤨¤Ð¡¢ÊÒÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤¬
lseek
¤ò»È¤Ã¤ÆÊѹ¹¤µ¤ì¤¿¾ì¹ç¡¢¤â¤¦ÊÒÊý¤Î¥Õ¥¡¥¤¥ë°ÌÃÖ¤âÊѹ¹¤µ¤ì¤ë¡£
¤·¤«¤·¤Ê¤¬¤é¡¢Æó¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ï¼Â¹Ô»þ¥¯¥í¡¼¥º (close-on-exec) ¥Õ¥é¥°
¤ò¶¦Í¤·¤Ê¤¤¡£¥³¥Ô¡¼¤ÎÊý¤Ï¼Â¹Ô»þ¥¯¥í¡¼¥º¥Õ¥é¥°¤Ï¥ª¥Õ¤Ë¤µ¤ì¤ë¤Î¤Ç¡¢exec ¤Î
ºÝ¤Ë¥¯¥í¡¼¥º¤µ¤ì¤Ê¤¤¡£
À®¸ù¤¹¤ë¤È¡¢¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬Ê֤롣
- F_GETFD
-
¼Â¹Ô»þ¥¯¥í¡¼¥º (close-on-exec) ¥Õ¥é¥°¤òÆÉ¤ß¼è¤ë¡£
FD_CLOEXEC
¥Ó¥Ã¥È¤¬ 0 ¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¤Ï
exec
¤·¤Æ¤â¥ª¡¼¥×¥ó (open) ¤µ¤ì¤¿¤Þ¤Þ¤À¤¬¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë¡£
- F_SETFD
-
¼Â¹Ô»þ¥¯¥í¡¼¥º (close-on-exec) ¥Õ¥é¥°¤Ë
arg
¤Î
FD_CLOEXEC
¥Ó¥Ã¥È¤Ç»ØÄꤷ¤¿ÃͤòÀßÄꤹ¤ë
- F_GETFL
-
¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Õ¥é¥°¤òÆÉ¤ß¼è¤ë
(open(2)
¤ÎºÝ¤ËÀßÄꤵ¤ì¤¿Á´¤Æ¤Î¥Õ¥é¥°¤¬ÊÖ¤µ¤ì¤ë)¡£
- F_SETFL
-
¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥Õ¥é¥°¤Ë
arg
¤Ç»ØÄꤷ¤¿ÃͤòÀßÄꤹ¤ë¡£
O_APPEND, O_NONBLOCK, O_ASYNC
¤Î¤ß¤¬ÀßÄê¤Ç¤¤ë¡£Â¾¤Î¥Õ¥é¥°¤Ï±Æ¶Á¤·¤Ê¤¤¡£
¥Õ¥é¥°¤Ï
(dup(2) , fork(2)
¤Ê¤É¤ÇºîÀ®¤µ¤ì¤¿) Ʊ¤¸¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¥³¥Ô¡¼¤Ç¶¦Í¤µ¤ì¤ë¡£
¥Õ¥é¥°¤È¤½¤Î°ÕÌ£¤Ï
open(2)
¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£
- F_GETLK, F_SETLK, F_SETLKW
-
Ǥ°Õ¤Î¥Õ¥¡¥¤¥ë¡¦¥í¥Ã¥¯¤ò´ÉÍý¤¹¤ë¡£»°¤ÄÌܤΰú¿ô
lock
¤Ï flock ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë (¤³¤Î¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¾å½ñ¤¤µ¤ì¤ë)¡£
- F_GETLK
-
¥í¥Ã¥¯¤ò¼èÆÀ¤¹¤ë¤Î¤ò˸¤²¤é¤ì¤¿¾ì¹ç¤Ï¡¢¤½¤ì¤ò˸¤²¤¿ flock ¹½Â¤ÂΤòÊÖ¤¹¡£
˸¤²¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¤½¤Î¥í¥Ã¥¯¤Î
l_type
¥Õ¥£¡¼¥ë¥É¤Ë
F_UNLCK
¤òÀßÄꤹ¤ë¡£
- F_SETLK
-
l_type
¥Õ¥£¡¼¥ë¥É¤¬
F_RDLCK
¤«
F_WRLCK
¤Î»þ¡¢¥í¥Ã¥¯¤òÀßÄꤹ¤ë¡£
F_UNLCK
¤Î»þ¡¢¥í¥Ã¥¯¤ò²òÊü (clear) ¤¹¤ë¡£
¤â¤·¥í¥Ã¥¯¤¬¤½¤Î¾¤ÎÃͤλþ¤Ï¡¢-1 ¤òÊÖ¤·¡¢
errno
¤Ë
EACCES
¤«
EAGAIN
¤¬ÀßÄꤵ¤ì¤ë¡£
- F_SETLKW
-
F_SETLK
¤ÈƱÍͤÀ¤¬¡¢¥¨¥é¡¼¤òÊÖ¤µ¤º¤Ë¥í¥Ã¥¯¤¬²òÊü¤µ¤ì¤ë¤Þ¤ÇÂÔ¤ÄÅÀ¤¬°Û¤Ê¤ë¡£
fcntl ()
¤òÂԤäƤ¤¤ë´Ö¤Ë¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¾ì¹ç¤Ë¤Ï¡¢
(¥·¥ó¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤«¤éÌá¤Ã¤¿¸å¤Ë) ¤½¤³¤ÇÃæÃǤ·¤Æ -1 ¤¬ÊÖ¤µ¤ì¡¢
errno
¤Ë
EINTR
¤¬ÀßÄꤵ¤ì¤ë¡£
- F_GETOWN
-
¸½ºß¡¢¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼
fd
¤Î¥¤¥Ù¥ó¥È¤Ë¤è¤ê SIGIO ¥·¥°¥Ê¥ë¤ª¤è¤Ó
SIGURG ¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID
¤Þ¤¿¤Ï¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤òÊÖ¤¹¡£
¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ÏÉé¤ÎÃͤÇÊÖ¤µ¤ì¤ë¡£
- F_SETOWN
-
¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼
fd
¤Î¥¤¥Ù¥ó¥È¤Ë¤è¤ê SIGIO ¥·¥°¥Ê¥ë¤ª¤è¤Ó
SIGURG ¥·¥°¥Ê¥ë¤ò¼õ¤±¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID
¤Þ¤¿¤Ï¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë¡£
¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ÏÉé¤ÎÃͤǻØÄꤹ¤ë¡£
(F_SETSIG
¤Ï SIGIO °Ê³°¤ÎÊ̤Υ·¥°¥Ê¥ë¤ò»ØÄꤹ¤ë¤Î¤Ë»È¤¦¤³¤È¤¬¤Ç¤¤ë¡£)
open(2)
¥³¡¼¥ë¤ÎºÝ¤Î»ØÄê¤Þ¤¿¤Ï
fcntl
¥³¡¼¥ë¤Î
F_SETFL
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥¿¡¼¤Ë
O_ASYNC
¾õÂ֥ե饰¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ø¤Î
Æþ½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿»þÅÀ¤Ç SIGIO ¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£
¥·¥°¥Ê¥ë¤òÁ÷¤ë¥×¥í¥»¥¹¤Þ¤¿¤Ï¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ï
fcntl
´Ø¿ô¤Î
F_SETOWN
¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥½¥±¥Ã¥È (socket) ¤Ê¤é¤Ð¥½¥±¥Ã¥È¤Ë
ÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤¬ÆÏ¤¤¤¿»þ¤Ë SIGURG ¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ëÁê¼ê¤â¡¢
Ʊ»þ¤ËÁªÂò¤¹¤ë¤³¤È¤Ë¤Ê¤ë (SIGURG ¤¬Á÷¤é¤ì¤¿¾ì¹ç¤Ë¤Ï
select(2)
¤¬¥½¥±¥Ã¥È¤¬¡ÖÆÃÊ̤ʾõÂ֡פˤ¢¤ë¤ÈÊó¹ð¤¹¤ë¤À¤í¤¦)¡£
¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬Ã¼Ëö (terminal) ¥Ç¥Ð¥¤¥¹¤Ë
Àܳ¤·¤Æ¤¤¤ì¤Ð¡¢SIGIO ¥·¥°¥Ê¥ë¤Ï¤½¤ÎüËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦
¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤Ø¤ÈÁ÷¤é¤ì¤ë¡£
- F_GETSIG
-
ÆþÎϤä½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¼õ¤±¼è¤ë¥·¥°¥Ê¥ë¤ò¼èÆÀ¤¹¤ë¡£
Ãͤ¬¥¼¥í¤Î¾ì¹ç¤Ë¤Ï SIGIO ¤¬Á÷¤é¤ì¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£Â¾¤ÎÁ´¤Æ¤ÎÃÍ¤Ï (SIGIO ¤ò
´Þ¤á¤Æ) Âå¤ê¤Ë¤½¤Î¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢¤³¤Î»þ SA_SIGINFO ¤¬Æ³Æþ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï
¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤ÇÄɲäξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
- F_SETSIG
-
ÆþÎϤä½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¼õ¤±¼è¤ë¥·¥°¥Ê¥ë¤òÀßÄꤹ¤ë¡£
Ãͤ¬¥¼¥í¤Î¾ì¹ç¤Ë¤Ï SIGIO ¤òÁ÷¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£Â¾¤ÎÁ´¤Æ¤ÎÃͤÏ
(SIGIO ¤ò´Þ¤á¤Æ) Âå¤ê¤Ë¤½¤Î¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¡¢¤³¤Î»þ SA_SIGINFO ¤¬
ƳÆþ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤ÇÄɲäξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
F_SETSIG ¤Ë¥¼¥í°Ê³°¤ÎÃͤòÀßÄꤷ¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤Ë SA_SIGINFO ¤ò
ÀßÄꤹ¤ë¤È
(sigaction(2)
¤ò»²¾È) I/O ¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ëÄɲäξðÊó¤¬
siginfo_t
¹½Â¤ÂΤǥ·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤ØÅϤµ¤ì¤ë¡£
si_code
¥Õ¥£¡¼¥ë¥È¤¬¥·¥°¥Ê¥ë¸¶°ø¤¬ SI_SIGIO ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤ë¾ì¹ç¡¢
si_fd
¥Õ¥£¡¼¥ë¥É¤Ï¥¤¥Ù¥ó¥È¤Ë·ë¤Ó¤Ä¤¤¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÍ¿¤¨¤ë¡£
¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬ÍøÍѲÄǽ¤«¤Ï¼¨¤µ¤ì¤Æ
¤¤¤Ê¤¤¤Î¤Ç¡¢¤É¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç I/O ¤¬²Äǽ¤«·è¤á¤ë
¤¿¤á¤Ë¤ÏÄ̾ï¤Îµ¡¹½
(select(2),
poll(2),
O_NONBLOCK
¤òÀßÄꤷ¤¿
read(2)
¤Ê¤É) ¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤Ê¤¤.
POSIX 1b ¤Î¥ê¥¢¥ë¡¦¥¿¥¤¥à¡¦¥·¥°¥Ê¥ë (Ãͤ¬ SIGRTMIN °Ê¾å) ¤òÁªÂò¤·¤Æ¤¤¤ë¾ì¹ç¤Ï
Ê£¿ô¤Î I/O ¥¤¥Ù¥ó¥È¤¬Æ±¤¸¥·¥°¥Ê¥ëÈÖ¹æ¤ò»ÈÍѤ·¤Æ¥¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¤«¤â
¤·¤ì¤Ê¤¤ (¥¥å¡¼¤ËÆþ¤ì¤ë¤«¤É¤¦¤«¤ÏÍøÍѲÄǽ¤Ê¥á¥â¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë)¡£
¾åµ¤ÈƱÍÍ¤Ë SA_SIGINFO ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¡¦¥Ï¥ó¥É¥é¡¼¤Î
¤¿¤á¤ÎÄɲäξðÊ󤬯À¤é¤ì¤ë¡£
¤³¤ì¤é¤Îµ¡¹½¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ç
select(2)
¤ä
poll(2)
¤ò»ÈÍѤ¹¤ë¤³¤È¤Ê¤·¤Ë´°Á´¤ÊÈ󯱴ü I/O ¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë
O_ASYNC,
F_GETOWN,
F_SETOWN
¤Î»ÈÍÑ¤Ï BSD ¤È Linux ¤ËÆÃͤǤ¢¤ë¡£
F_GETSIG
¤È
F_SETSIG
¤Ï Linux ¤ËÆÃͤǤ¢¤ë¡£POSIX ¤ÏƱÍͤΤ³¤È¤ò¹Ô¤¦¤¿¤á¤ËÈ󯱴ü I/O ¤È
aio_sigevent
¹½Â¤ÂΤò»ý¤Ã¤Æ¤¤¤ë¡£Linux ¤Ï¤³¤ì¤é¤â GNU C ¥é¥¤¥Ö¥é¥ê (Glibc) ¤Î°ìÉô¤È
¤·¤ÆÍøÍѲÄǽ¤Ç¤¢¤ë¡£
ÊÖ¤êÃÍ
À®¸ù¤·¤¿¾ì¹ç¤ÎÊÖ¤êÃͤÏÁàºîÄê¿ô¤Î¼ïÎà¤Ë¤è¤Ã¤Æ°ã¤¦:
- F_DUPFD
-
¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£
- F_GETFD
-
¥Õ¥é¥°¤ÎÃͤòÊÖ¤¹¡£
- F_GETFL
-
¥Õ¥é¥°¤ÎÃͤòÊÖ¤¹¡£
- F_GETOWN
-
¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î½êͼԤòÊÖ¤¹¡£
- F_GETSIG
-
ÆÉ¤ß¹þ¤ß¤ä³Ý¤½Ð¤·¤¬²Äǽ¤Ë¤Ê¤Ã¤¿»þ¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤ÎÃÍ¡¢¤â¤·¤¯¤Ï
ÅÁÅýŪ¤Ê SIGIO ưºî¤Î¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
- ¾¤ÎÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤Ï¥¼¥í¤òÊÖ¤¹¡£
-
¥¨¥é¡¼¤Î»þ¤Ï -1 ¤¬ÊÖ¤µ¤ì¡¢
errno
¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£
¥¨¥é¡¼
- EACCES
-
¾¤Î¥×¥í¥»¥¹¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¥í¥Ã¥¯¤Ë¤è¤Ã¤ÆÁàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£
- EAGAIN
-
¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥á¥â¥ê¡¦¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
Áàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£
- EBADF
-
fd
¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¡£
- EDEADLK
-
»ØÄꤵ¤ì¤¿
F_SETLKW
¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯ (deadlock) ¤Ë¤Ê¤ë¤³¤È¤¬¸¡½Ð¤µ¤ì¤¿¡£
- EFAULT
-
lock
¤¬ÍøÍѲÄǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£
- EINTR
-
F_SETLKW
¥³¥Þ¥ó¥É¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£
F_GETLK ¤È F_SETLK
¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤ò³Îǧ¤·¤¿¤ê¼èÆÀ¤·¤¿¤ê¤¹¤ëÁ°¤Ë¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£
¤³¤ì¤Ï¤¿¤¤¤Æ¤¤¥ê¥â¡¼¥È¤Î¥Õ¥¡¥¤¥ë¤ò¥í¥Ã¥¯¤¹¤ë¾ì¹ç
(Î㤨¤Ð NFS ¾å¤Ç¥í¥Ã¥¯¤¹¤ë¾ì¹ç) ¤Ëµ¯¤³¤ë¡£
¤·¤«¤·¥í¡¼¥«¥ë¤Ç¤âµ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£
- EINVAL
-
F_DUPFD¤Ç¡¢
arg
¤¬É餫¡¢¤â¤·¤¯¤Ïµö¤µ¤ì¤ëºÇÂçÃͤè¤ê¤âÂ礤¤¡£
F_SETSIG
¤Î¾ì¹ç¡¢
arg
¤¬ÍøÍѲÄǽ¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£
- EMFILE
-
F_DUPFD¤Ç¡¢
¥×¥í¥»¥¹¤¬¤¹¤Ç¤ËºÇÂç¿ô¤Þ¤Ç¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¡£
- ENOLCK
-
¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥í¥Ã¥¯¤Î¿ô¤¬Â¿²á¤®¤Æ¡¢¥í¥Ã¥¯¡¦¥Æ¡¼¥Ö¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Ç¤¢¤ë¡£
¤Þ¤¿¤Ï¥ê¥â¡¼¥È¡¦¥í¥Ã¥¥ó¥°¡¦¥×¥í¥È¥³¥ë (Î㤨¤Ð NFS ¾å¤Î¥í¥Ã¥¯) ¤¬¼ºÇÔ¤·¤¿¡£
- EPERM
-
ÄɲÃÀìÍѰÀ¤¬ÀßÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î
O_APPEND
¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¤è¤¦¤È»î¤ß¤¿¡£
Ãí°Õ
¥¨¥é¡¼¤ÎºÝ¤ÎÊÖ¤êÃͤ¬
dup2
¤È
F_DUPFD
¤Ç¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£
½àµò
SVr4, SVID, POSIX, X/OPEN, BSD 4.3. Posix.1 ¤Ë¤Ï
F_DUPFD, F_GETFD, F_SETFD, F_GETFL, F_SETFL, F_GETLK, F_SETLK, F_SETLKW
Áàºî¤Î¤ß¤¬»ÅÍͤˤ¢¤ë¡£F_GETOWN, F_SETOWN ¤Ï BSD»ÅÍͤǤ¢¤ê¡¢SVr4 ¤Ç¤Ï¥µ¥Ý¡¼¥È
¤µ¤ì¤Æ¤¤¤Ê¤¤¡£F_GETSIG ¤È F_SETSIG ¤Ï Linux ÆÃͤǤ¢¤ë¡£
F_GETFL/F_SETFL ¤Ë»ÈÍѤǤ¤ë¥Õ¥é¥°¤Ï
open(2)
¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤ÈƱ¤¸¤Ç¤¢¤ê¡¢¤½¤ì¤¾¤ì¤Î¥·¥¹¥Æ¥à¤Ç°Û¤Ê¤Ã¤Æ¤¤¤ë¡£
O_APPEND, O_NONBLOCK, O_RDONLY, O_RDWR ¤Ï POSIX.1 ¤Î»ÅÍͤˤ¢¤ë¡£
SVr4 ¤Ç¤Ï¤³¤³¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤Ê¤¤Â¾¤Î¤¤¤¯¤Ä¤«¤Î¥ª¥×¥·¥ç¥ó¤ä¥Õ¥é¥°¤ò
¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£
SVr4 ¤Ë¤Ï¾¤Ë EFAULT, EINTR, EIO, ENOLINK, EOVERFLOW ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Î
µ½Ò¤¬¤¢¤ë¡£
´ØÏ¢¹àÌÜ
dup2(2),
flock(2),
open(2),
socket(2)
Index
- ̾Á°
-
- ½ñ¼°
-
- ÀâÌÀ
-
- ÊÖ¤êÃÍ
-
- ¥¨¥é¡¼
-
- Ãí°Õ
-
- ½àµò
-
- ´ØÏ¢¹àÌÜ
-
|