Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

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

̾Á°
½ñ¼°
ÀâÌÀ
ÊÖ¤êÃÍ
¥¨¥é¡¼
Ãí°Õ
½àµò
´ØÏ¢¹àÌÜ

 
 
 
 
Google
  Web Linuxinfor   
 

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.