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

 
 

 

OPEN

Section: System calls (2)
Updated: June 3, 1999
Index Return to Main Contents
 

̾Á°

open, creat - ¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥Ð¥¤¥¹¤Î¥ª¡¼¥×¥ó¡¢ºîÀ®¤ò¹Ô¤Ê¤¦¡£  

½ñ¼°

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
 

ÀâÌÀ

open ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Õ¥¡¥¤¥ë̾¤«¤é¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (³¤¯ read, write ¤Ê¤É I/O ¤Ç»ÈÍѤ¹¤ë¾®¤µ¤ÊÈóÉé¤ÎÀ°¿ô) ¤Ø¤ÎÊÑ´¹¤Ë»ÈÍѤ¹¤ë¡£ ¸Æ¤Ó½Ð¤·¤¬À®¸ù¤·¤¿¾ì¹ç¡¢¸½ºß¤½¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤ ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Î¤¦¤ÁºÇ¾®¤Î¤â¤Î¤òÊÖ¤¹¡£ ¤³¤Î¥³¡¼¥ë¤Ï¾¤Î¥×¥í¥»¥¹¤È¶¦Í­¤µ¤ì¤Æ¤¤¤Ê¤¤¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò ºîÀ®¤¹¤ë¡£(¤·¤«¤· fork(2) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò¶¦Í­¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë) ¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ï exec ´Ø¿ô¤ò¹Ô¤Ã¤¿¸å¤â open ¤µ¤ì¤¿ ¤Þ¤Þ¤Ç¤¢¤ë (fcntl(2) ¤ò»²¾È)¡£ ¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È (file offset) ¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤ËÀßÄꤵ¤ì¤ë¡£

¥Ñ¥é¥á¡¼¥¿ flags ¤Ï O_RDONLY, O_WRONLY, O_RDWR ¤Î¤É¤ì¤«°ì¤Ä¤Ç¡¢¤½¤ì¤¾¤ìÆÉ¤ß¹þ¤ßÀìÍÑ¡¢½ñ¤­¹þ¤ßÀìÍÑ¡¢ÆÉ¤ß½ñ¤­ÍѤòÍ׵᤹¤ë¡£ flags ¤Ï¡¢°Ê²¼¤Î 0 ¸Ä°Ê¾å¤Î¥Ó¥Ã¥È OR (bitwise-or) ¤Ç¤â¤è¤¤¡£

O_CREAT
¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏºîÀ® (create) ¤¹¤ë¡£ ¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô (¥æ¡¼¥¶¡¼ ID) ¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÀßÄꤵ¤ì¤ë¡£ ¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID ¤Þ¤¿¤Ï¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥× ID ¤ËÀßÄꤵ¤ì¤ë (¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¡¦¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¡¦ ¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥â¡¼¥É¤Ë°Í¸¤¹¤ë¡£ Î㤨¤Ð¡¢ mount(8) ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë ext2 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó bsdgroups ¤È sysvgroups ¤ò¸«¤è)¡£
O_EXCL
O_CREAT ¤È°ì½ï¤Ë»ÈÍѤµ¤ì¤¿¾ì¹ç¡¢ ¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¤Ï¥¨¥é¡¼¤È¤Ê¤ê¡¢ open ¤Ï¼ºÇÔ¤¹¤ë¡£ ¤³¤Î¾ì¹ç¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬¤É¤³¤ò»Ø¤·¤Æ¤¤¤ë¤«¤Ë¤«¤«¤ï¤é¤º¡¢ ¤½¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ï¸ºß¤¹¤ë¡£ O_EXCL ¤Ï NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ïµ¡Ç½¤·¤Ê¤¤¡¢ ¥í¥Ã¥¯ (lock) µ¡Ç½¤Ê¤É¤Ë»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï¶¥¹ç¾õÂ֤ˤʤë¤À¤í¤¦¡£ ¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤¿Ê¬²òÉÔǽ (atomic) ¤Î¥í¥Ã¥¯µ¡Ç½¤Î²ò·è¤Ë¤Ï Ʊ¤¸¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ë¾¤È̾Á°¤Î½Å¤Ê¤é¤Ê¤¤¥Õ¥¡¥¤¥ë (Î㤨¤Ð¥Û¥¹¥È̾¤È pid ¤ÎÁȤ߹ç¤ï¤») ¤òºîÀ®¤·¡¢ link(2) ¤ò»ÈÍѤ·¤Æ¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡£ link() ¥³¡¼¥ë¤ÎÊÖ¤êÃͤ¬ 0 ¤Ê¤é¤Ð¥í¥Ã¥¯¤ËÀ®¸ù¤·¤Æ¤¤¤ë¡£ ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ë stat(2) ¤ò»ÈÍѤ·¤Æ¥ê¥ó¥¯¿ô (link count) ¤¬ 2 ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ ¤³¤Î¾ì¹ç¤Ë¤Ï¥í¥Ã¥¯¤ËÀ®¸ù¤·¤Æ¤¤¤ë¡£
O_NOCTTY
pathname ¤ÏüËö (terminal) ¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Æ¡¢ --- tty(4) ¤ò»²¾È¤¹¤ë¤³¤È --- ¥×¥í¥»¥¹¤¬À©¸æÃ¼Ëö¤ò»ý¤¿¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤ì¤¬À©¸æÃ¼Ëö¤Ë¤Ê¤ë¡£
O_TRUNC
¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¡¢Ä̾ï¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢ ½ñ¤­¹þ¤ß²Ä¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë (¤Ä¤Þ¤ê¡¢O_RDWR ¤Þ¤¿¤Ï O_WRONLY ¤Î) ¾ì¹ç¡¢ Ťµ 0 ¤ËÀÚ¤êµÍ¤á (truncate) ¤é¤ì¤ë¡£ ¥Õ¥¡¥¤¥ë¤¬ FIFO ¤Þ¤¿¤ÏüËö¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢ O_TRUNC ¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢O_TRUNC ¤Î¸ú²Ì¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤ (Linux ¥Ð¡¼¥¸¥ç¥ó¤Î¿¤¯¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£ ¤½¤ì°Ê³°¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¥¨¥é¡¼¤òÊÖ¤¹)¡£
O_APPEND
¥Õ¥¡¥¤¥ë¤òÄɲà (append) ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤¹¤ë¡£¤½¤ì¤¾¤ì¤Î write ¤ÎÁ°¤Ë lseek ¤ò¹Ô¤Ã¤¿¤«¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤ò¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë°Üư¤¹¤ë¡£ NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ O_APPEND ¤ÇÊ£¿ô¤Î¥×¥í¥»¥¹¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¤ËƱ»þ¤Ë ½ñ¤­¹þ¤â¤¦¤È¤·¤¿¾ì¹ç¡¢ÆâÍÆ¤¬Ç˲õ¤µ¤ì¤ë¡£¤³¤ì¤Ï NFS ¤¬Äɲå⡼¥É¤ò ¥µ¥Ý¡¼¥È¤»¤º¡¢¥¯¥é¥¤¥¢¥ó¥È¤Î¥«¡¼¥Í¥ë (kernel) ¤¬¤½¤ì¤ò¥·¥ß¥å¥ì¡¼¥È ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¶¥¹ç¾õÂ֤ǤϻÈÍѤǤ­¤Ê¤¤¤¿¤á¤Ç¤¢¤ë¡£
O_NONBLOCK ¤Þ¤¿¤Ï O_NDELAY
²Äǽ¤Ê¤é¤Ð¡¢¥Õ¥¡¥¤¥ë¤ÏÈóÄä»ß (non-blocking) ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ open ¤ä¾¤Î¡¢¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÂФ¹¤ë¤¹¤Ù¤Æ¤ÎÁàºî¤â ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤òÂÔ¤¿¤»¤ë¤³¤È¤Ê¤¯ÊÖ¤µ¤ì¤ë¡£ FIFO (¥Í¡¼¥à¥É¡¦¥Ñ¥¤¥×) ¤ò°·¤¦¾ì¹ç¤Ë¤Ï fifo(4) ¤â»²¾È¤¹¤ë¤³¤È¡£ ¤³¤Î¥â¡¼¥É¤Ï FIFO °Ê³°¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¸ú²Ì¤ò»ý¤ÄɬÍפϤʤ¤¡£
O_SYNC
¥Õ¥¡¥¤¥ë¤ÏƱ´ü (synchronous) I/O ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£ ¤½¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÂФ¹¤ëÁ´¤Æ¤Î write ¤Ï¡¢Âбþ¤¹¤ë¥Ï¡¼¥É¥¦¥§¥¢¤ËʪÍýŪ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤Þ¤Ç¸Æ¤Ó½Ð¤·¤¿ ¥×¥í¥»¥¹¤ËÌá¤é¤Ê¤¤¡£ °Ê²¼¤Î¡ÖÀ©¸Â¡×¤ò¸«¤è¡£
O_NOFOLLOW
pathname ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤À¤Ã¤¿¾ì¹ç¡¢¥ª¡¼¥×¥ó¤Ï¼ºÇÔ¤¹¤ë¡£ ¤³¤ì¤Ï FreeBSD ¤Î³ÈÄ¥¤Ç¡¢Linux ¤Ë¤Ï 2.1.126 ¤è¤êÄɲ䵤줿¡£ pathname ¤ÎÁ°¤ÎÀ®Ê¬¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ï°ÍÁ³¤È¤·¤ÆÄÉÀפµ¤ì¤ë¡£ glibc 2.0.100 °Ê¹ß¤Î¥Ø¥Ã¥À¡¼¤Ë¤Ï¤³¤Î¥Õ¥é¥°¤ÎÄêµÁ¤¬¤¢¤ë¡£ 2.1.126 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£
O_DIRECTORY
pathname ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¥ª¡¼¥×¥ó¤Ï¼ºÇÔ¤¹¤ë¡£ ¤³¤Î¥Õ¥é¥°¤Ï Linux ÆÃÍ­¤Ç¤¢¤ë¡£ opendir(3) ¤¬ FIFO ¤ä¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¥³¡¼¥ë¤µ¤ì¤¿¾ì¹ç¤Î ¥µ¡¼¥Ó¥¹ÉÔǽ (denial-of-service) ¹¶·â¤òÈò¤±¤ë¤¿¤á¤Ë ¥«¡¼¥Í¥ë 2.1.126 ¤ÇÄɲ䵤줿¡£ ¤·¤«¤·¤³¤ì¤Ï opendir ¤Î¼ÂÁõ°Ê³°¤Ç¤Ï»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
O_LARGEFILE
µðÂç¤Ê¥Õ¥¡¥¤¥ë (Large Files System) ¤ò¥µ¥Ý¡¼¥È¤·¤¿ 32 ¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ç¡¢ 31 ¥Ó¥Ã¥È¤Ç¤Ï¥Õ¥¡¥¤¥ë¤Î¥µ¥¤¥º¤òɽ¤ï¤»¤Ê¤¤¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¤Î ¥ª¡¼¥×¥ó¤ò²Äǽ¤Ë¤¹¤ë¡£

¤³¤ì¤é¤ÎÁªÂò¥Õ¥é¥°¤Î¤¤¤¯¤Ä¤«¤Ï¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¤Ç¤â fcntl ¤ò»ÈÍѤ·¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

°ú¤­¿ô mode ¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ëµö²Ä (permission) ¤ò»ØÄꤹ¤ë¡£ ¤½¤ì¤Ï¥×¥í¥»¥¹¤Î umask ¤ÇÄ̾ïÄ̤꽤Àµ¤µ¤ì¡¢ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµö²Ä¤Ï (mode & ~umask) ¤È¤Ê¤ë¡£ ¤³¤Î¥â¡¼¥É¤Ï¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î ¾­Íè¤Î¥¢¥¯¥»¥¹¤Ë¤Î¤ßŬÍѤµ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£ ÆÉ¤ß¹þ¤ß¤Î¤ß¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë open ¥³¡¼¥ë¤Ï¡¢read/write ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£

mode ¤Î¤¿¤á¤Ë°Ê²¼¤Î¥·¥ó¥Ü¥ëÄê¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë :

S_IRWXU
00700 ¥æ¡¼¥¶¡¼ (¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô) ¤ÏÆÉ¤ß¹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢ ¼Â¹Ô¤Îµö²Ä¤ò»ý¤Ä¡£
S_IRUSR (S_IREAD)
00400 ¥æ¡¼¥¶¡¼¤ÏÆÉ¤ß¹þ¤ß¤Îµö²Ä¤ò»ý¤Ä¡£
S_IWUSR (S_IWRITE)
00200 ¥æ¡¼¥¶¡¼¤Ï½ñ¤­¹þ¤ß¤Îµö²Ä¤ò»ý¤Ä¡£
S_IXUSR (S_IEXEC)
00100 ¥æ¡¼¥¶¡¼¤Ï¼Â¹Ô¤Îµö²Ä¤ò»ý¤Ä¡£
S_IRWXG
00070 ¥°¥ë¡¼¥×¤ÏÆÉ¤ß¹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤ò»ý¤Ä¡£
S_IRGRP
00040 ¥°¥ë¡¼¥×¤ÏÆÉ¤ß¹þ¤ß¤Îµö²Ä¤ò»ý¤Ä¡£
S_IWGRP
00020 ¥°¥ë¡¼¥×¤Ï½ñ¤­¹þ¤ß¤Îµö²Ä¤ò»ý¤Ä¡£
S_IXGRP
00010 ¥°¥ë¡¼¥×¤Ï¼Â¹Ô¤Îµö²Ä¤ò»ý¤Ä¡£
S_IRWXO
00007 ¾¿Í (others) ¤ÏÆÉ¤ß¹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤ò»ý¤Ä¡£
S_IROTH
00004 ¾¿Í¤ÏÆÉ¤ß¹þ¤ß¤Îµö²Ä¤ò»ý¤Ä¡£
S_IWOTH
00002 ¾¿Í¤Ï½ñ¤­¹þ¤ß¤Îµö²Ä¤ò»ý¤Ä¡£
S_IXOTH
00001 ¾¿Í¤Ï¼Â¹Ô¤Îµö²Ä¤ò»ý¤Ä¡£

mode ¤Ï flags ¤Ë O_CREAT ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¾ï¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï̵»ë¤µ¤ì¤ë¡£

creat ¤Ï flags ¤Ë O_CREAT|O_WRONLY|O_TRUNC ¤ò»ØÄꤷ¤Æ open ¤ò¹Ô¤Ê¤¦¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£

 

ÊÖ¤êÃÍ

open ¤È creat ¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï -1 ¤òÊÖ¤¹ (¤½¤Î¾ì¹ç¤Ï errno ¤òŬÀÚ¤ËÀßÄꤹ¤ë)¡£ open ¤ÇÆÃ¼ì¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤¬¡¢ creat ¤ÇÆÃ¼ì¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£ - Âå¤ï¤ê¤Ë mknod(2) ¤ò»ÈÍѤ¹¤ë¡£

UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤Æ¤¤¤ë NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ open ¤¬¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤·¤¿¾ì¹ç¤Ç¤â read(2) ¤¬ EACCES ¤ÇµñÈݤµ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£ ¤³¤ì¤Ï open ¤Îµö²Ä¤Î¥Á¥§¥Ã¥¯¤Ï¥¯¥é¥¤¥¢¥ó¥È¤Ç¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¤¬¡¢ ÆÉ¤ß¹þ¤ß¡¢½ñ¤­¹þ¤ß¤ÎºÝ¤Î UID ¥Þ¥Ã¥Ô¥ó¥°¤Ï¥µ¡¼¥Ð¡¼¤Ç¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¤¿¤á¤Ç¤¢¤ë¡£

¥Õ¥¡¥¤¥ë¤¬¿·¤·¤¯ºîÀ®¤µ¤ì¤ë¤È¡¢ ¥Õ¥¡¥¤¥ë¤Î atime, ctime, mtime ¥Õ¥£¡¼¥ë¥É¤¬¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ ¤µ¤é¤Ë¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î ctime ¤È mtime ¤â¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£ ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¡¢O_TRUNC ¥Õ¥é¥°¤Ç¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¤È¤­¤Ï¡¢ ¥Õ¥¡¥¤¥ë¤Î ctime ¤È mtime ¥Õ¥£¡¼¥ë¥É¤¬¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£

 

¥¨¥é¡¼

EEXIST
pathname ¤Ï´û¤Ë¸ºß¤·¡¢ O_CREAT ¤È O_EXCL ¤¬»ÈÍѤµ¤ì¤¿¡£
EISDIR
pathname ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ßÍ׵᤬´Þ¤Þ¤ì¤Æ¤¤¤¿¡£
EACCES
¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÍ׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ pathname ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤Ë¸¡º÷ (¼Â¹Ô) µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ ¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¤¬¤Þ¤À¸ºß¤»¤º¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¡£
ENAMETOOLONG
pathname ¤¬Ä¹²á¤®¤ë¡£
ENOENT
pathname ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«²õ¤ì¤¿ (dangling) ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£
ENOTDIR
pathname ¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤¬¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£ ¤Þ¤¿¤Ï O_DIRECTORY ¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ pathname ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£
ENXIO
O_NONBLOCK | O_WRONLY ¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬ FIFO ¤Ç ¤½¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ ¤Þ¤¿¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬¥Ç¥Ð¥¤¥¹ÆÃ¼ì¥Õ¥¡¥¤¥ë¤ÇÂбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£
ENODEV
pathname ¤¬¥Ç¥Ð¥¤¥¹ÆÃ¼ì¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê¡¢Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£ (¤³¤ì¤Ï Linux ¥«¡¼¥Í¥ë¤Î¥Ð¥°¤Ç¤¢¤ê¡¢¤³¤Î¾ì¹ç¤Ë¤Ï ENXIO ¤¬ÊÖ¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë)
EROFS
pathname ¤¬ÆÉ¤ß¹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê¡¢ ½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤òÍ׵ᤷ¤¿¡£
ETXTBSY
pathname ¤¬¸½ºß¼Â¹ÔÃæ¤Î¼Â¹Ô¥¤¥á¡¼¥¸¤ò»²¾È¤·¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ß¤òÍ׵ᤷ¤¿¡£
EFAULT
pathname ¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤ò»Ø¤·¤Æ¤¤¤¿.
ELOOP
pathname ¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£ ¤Þ¤¿¤Ï O_NOFOLLOW ¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢ pathname ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤À¤Ã¤¿¡£
ENOSPC
pathname ¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ë¤¬¡¢ pathname ¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Î¶õ¤­ÍÆÎ̤¬¤Ê¤¤¡£
ENOMEM
¥«¡¼¥Í¥ë¤Ë½½Ê¬¥á¥â¥ê¤¬Â¸ºß¤·¤Ê¤¤¡£
EMFILE
¥×¥í¥»¥¹¤¬´û¤Ë¡¢¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô¤Ë㤷¤Æ¤¤¤ë¡£
ENFILE
¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Î¹ç·×¿ô¤ÎÀ©¸Â¤Ë㤷¤Æ¤¤¤ë¡£
 

½àµò

SVr4, SVID, POSIX, X/OPEN, BSD 4.3¡£ O_NOFOLLOW ¤È O_DIRECTORY ¥Õ¥é¥°¤Ï Linux ÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ë¡£ ¤³¤ì¤é¤Î¥Õ¥é¥°¤ÎÄêµÁ¤ò»È¤¦¤Ë¤¿¤á¤Ë¤Ï¡¢ _GNU_SOURCE ¥Þ¥¯¥í¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¤«¤âÃΤì¤Ê¤¤¡£  

À©¸Â

NFS ¤ò¼Â¸½¤·¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Ë¤Ï¿¤¯¤ÎÉÔÈ÷¤¬¤¢¤ê¡¢ÆÃ¤Ë O_SYNC ¤È O_NDELAY ¤Ë±Æ¶Á¤¹¤ë¡£

POSIX ¤Ç¤Ï¡¢¥Õ¥é¥° O_SYNC, O_DSYNC, O_RSYNC ¤ËÂбþ¤¹¤ë 3 ¼ïÎà¤ÎƱ´ü I/O ¤òÄ󶡤·¤Æ¤¤¤ë¡£ Linux ¤Ç¤Ï¡¢º£¤Î¤È¤³¤í (¥«¡¼¥Í¥ë 2.1.130) ¤³¤ì¤é¤ÏƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£  

´ØÏ¢¹àÌÜ

read(2), write(2), fcntl(2), close(2), link(2), mknod(2), mount(2), stat(2), umask(2), unlink(2), socket(2), fopen(3), fifo(4)


 

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.