OSDN Git Service

(split) LDP v3.24 -> v3.29 の定型的な変更内容を反映。
[linuxjm/LDP_man-pages.git] / release / man2 / open.2
1 .\" Hey Emacs! This file is -*- nroff -*- source.
2 .\"
3 .\" This manpage is Copyright (C) 1992 Drew Eckhardt;
4 .\"                               1993 Michael Haardt, Ian Jackson.
5 .\"                               2008 Greg Banks
6 .\"
7 .\" Permission is granted to make and distribute verbatim copies of this
8 .\" manual provided the copyright notice and this permission notice are
9 .\" preserved on all copies.
10 .\"
11 .\" Permission is granted to copy and distribute modified versions of this
12 .\" manual under the conditions for verbatim copying, provided that the
13 .\" entire resulting derived work is distributed under the terms of a
14 .\" permission notice identical to this one.
15 .\"
16 .\" Since the Linux kernel and libraries are constantly changing, this
17 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
18 .\" responsibility for errors or omissions, or for damages resulting from
19 .\" the use of the information contained herein.  The author(s) may not
20 .\" have taken the same level of care in the production of this manual,
21 .\" which is licensed free of charge, as they might when working
22 .\" professionally.
23 .\"
24 .\" Formatted or processed versions of this manual, if unaccompanied by
25 .\" the source, must acknowledge the copyright and authors of this work.
26 .\"
27 .\" Modified 1993-07-21 by Rik Faith <faith@cs.unc.edu>
28 .\" Modified 1994-08-21 by Michael Haardt
29 .\" Modified 1996-04-13 by Andries Brouwer <aeb@cwi.nl>
30 .\" Modified 1996-05-13 by Thomas Koenig
31 .\" Modified 1996-12-20 by Michael Haardt
32 .\" Modified 1999-02-19 by Andries Brouwer <aeb@cwi.nl>
33 .\" Modified 1998-11-28 by Joseph S. Myers <jsm28@hermes.cam.ac.uk>
34 .\" Modified 1999-06-03 by Michael Haardt
35 .\" Modified 2002-05-07 by Michael Kerrisk <mtk.manpages@gmail.com>
36 .\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
37 .\" 2004-12-08, mtk, reordered flags list alphabetically
38 .\" 2004-12-08, Martin Pool <mbp@sourcefrog.net> (& mtk), added O_NOATIME
39 .\" 2007-09-18, mtk, Added description of O_CLOEXEC + other minor edits
40 .\" 2008-01-03, mtk, with input from Trond Myklebust
41 .\"     <trond.myklebust@fys.uio.no> and Timo Sirainen <tss@iki.fi>
42 .\"     Rewrite description of O_EXCL.
43 .\" 2008-01-11, Greg Banks <gnb@melbourne.sgi.com>: add more detail
44 .\"     on O_DIRECT.
45 .\" 2008-02-26, Michael Haardt: Reorganized text for O_CREAT and mode
46 .\"
47 .\" FIXME . Apr 08: The next POSIX revision has O_EXEC, O_SEARCH, and
48 .\" O_TTYINIT.  Eventually these may need to be documented.  --mtk
49 .\" FIXME Linux 2.6.33 has O_DSYNC, and a hidden __O_SYNC.
50 .\"
51 .\" Japanese Version Copyright (c) 1997-1999 HANATAKA Shinya
52 .\"         all rights reserved.
53 .\" Translated 1999-08-14, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
54 .\" Updated 2001-05-25, Yuichi SATO <ysato444@yahoo.co.jp>
55 .\" Updated & Modified 2002-01-02, Yuichi SATO
56 .\" Updated & Modified 2002-07-07, Yuichi SATO
57 .\" Updated & Modified 2002-09-19, Yuichi SATO
58 .\" Updated & Modified 2003-07-30, Yuichi SATO
59 .\" Updated & Modified 2003-11-27, Yuichi SATO
60 .\" Updated & Modified 2005-01-01, Yuichi SATO
61 .\" Updated & Modified 2005-09-14, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
62 .\" Updated & Modified 2005-10-14, Akihiro MOTOKI
63 .\" Updated & Modified 2006-01-18, Akihiro MOTOKI
64 .\" Updated & Modified 2006-04-15, Akihiro MOTOKI, LDP v2.29
65 .\" Updated 2007-01-07, Akihiro MOTOKI, LDP v2.43
66 .\" Updated 2007-05-01, Akihiro MOTOKI, LDP v2.46
67 .\" Updated 2007-10-12, Akihiro MOTOKI, LDP v2.66
68 .\" Updated 2008-02-12, Akihiro MOTOKI, LDP v2.77
69 .\" Updated 2008-04-04, Akihiro MOTOKI, LDP v2.79
70 .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05
71 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24
72 .\"
73 .\"WORD:        descriptor              ¥Ç¥£¥¹¥¯¥ê¥×¥¿
74 .\"WORD:        file description        ¥Õ¥¡¥¤¥ëµ­½Ò
75 .\"WORD:        open                    ¥ª¡¼¥×¥ó
76 .\"WORD:        create                  ºîÀ®
77 .\"WORD:        file offset             ¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È
78 .\"WORD:        controling terminal     À©¸æüËö
79 .\"WORD:        non-blocking I/O        ÈóÄä»ß I/O
80 .\"WORD:        synchronous I/O         Æ±´ü I/O
81 .\"WORD:        permission              µö²Ä
82 .\"WORD:        user                    ¥æ¡¼¥¶¡¼
83 .\"WORD:        owner                   ½êÍ­¼Ô
84 .\"WORD:        group                   ¥°¥ë¡¼¥×
85 .\"WORD:        other                   Â¾¿Í
86 .\"WORD:        kernel                  ¥«¡¼¥Í¥ë
87 .\"WORD:        symbolic link           ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯
88 .\"WORD:        dangling symbolic link  ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯
89 .\"WORD:        file creation flag      ¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥°
90 .\"WORD:        file status flag        ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰
91 .\"
92 .TH OPEN 2 2010-09-10 "Linux" "Linux Programmer's Manual"
93 .SH Ì¾Á°
94 open, creat \- ¥Õ¥¡¥¤¥ë¤ä¥Ç¥Ð¥¤¥¹¤Î¥ª¡¼¥×¥ó¡¢ºîÀ®¤ò¹Ô¤¦
95 .SH ½ñ¼°
96 .nf
97 .B #include <sys/types.h>
98 .B #include <sys/stat.h>
99 .B #include <fcntl.h>
100 .sp
101 .BI "int open(const char *" pathname ", int " flags );
102 .BI "int open(const char *" pathname ", int " flags ", mode_t " mode );
103
104 .BI "int creat(const char *" pathname ", mode_t " mode );
105 .fi
106 .SH ÀâÌÀ
107 ¥Õ¥¡¥¤¥ë¤Î
108 .I pathname
109 ¤òÍ¿¤¨¤ë¤È¡¢
110 .BR open ()
111 ¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
112 ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢¤³¤Î¸å¤Ë³¤¯¥·¥¹¥Æ¥à¥³¡¼¥ë
113 .RB ( read "(2), " write "(2), " lseek "(2), " fcntl "(2) ¤Ê¤É)"
114 ¤Ç»ÈÍѤµ¤ì¤ë¾®¤µ¤ÊÈóÉé¤ÎÀ°¿ô¤Ç¤¢¤ë¡£
115 ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬À®¸ù¤·¤¿¾ì¹ç¤ËÊÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï
116 ¤½¤Î¥×¥í¥»¥¹¤¬¤½¤Î»þÅÀ¤Ç¥ª¡¼¥×¥ó¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î
117 ¤¦¤ÁºÇ¾®¤Î¿ô»ú¤Î¤â¤Î¤È¤Ê¤ë¡£
118 .PP
119 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï
120 .BR execve (2)
121 ¤ò¼Â¹Ô¤·¤¿¸å¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤È¤Ê¤ë (¤Ä¤Þ¤ê¡¢
122 .BR fcntl (2)
123 ¤ËÀâÌÀ¤¬¤¢¤ë
124 .B FD_CLOEXEC
125 ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤ÏºÇ½é¤Ï̵¸ú¤Ç¤¢¤ë;
126 ¸å½Ò¤Î Linux ¸ÇÍ­¤Î¥Õ¥é¥°
127 .B O_CLOEXEC
128 ¤ò»È¤¦¤È¤³¤Î¥Ç¥Õ¥©¥ë¥È¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë)¡£
129 ¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È (file offset) ¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤ËÀßÄꤵ¤ì¤ë
130 .RB ( lseek (2)
131 »²¾È)¡£
132 .PP
133 .BR open ()
134 ¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¡Ö¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¡×
135 .I "(open file description)"
136 ¤¬ºîÀ®¤µ¤ì¤ë¡£¥Õ¥¡¥¤¥ëµ­½Ò¤È¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤÎ
137 ¥ª¡¼¥×¥óÃæ¤Î¥Õ¥¡¥¤¥ë¤Î¥Æ¡¼¥Ö¥ë¤Î¥¨¥ó¥È¥ê¤Ç¤¢¤ë¡£
138 ¤³¤Î¥¨¥ó¥È¥ê¤Ï¡¢¥Õ¥¡¥¤¥ë¡¦¥ª¥Õ¥»¥Ã¥È¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰
139 .RB ( fcntl (2)
140 .B F_SETFL
141 Áàºî¤Ë¤è¤êÊѹ¹²Äǽ) ¤¬ÊÝ»ý¤¹¤ë¡£
142 ¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤Î°ì¤Ä¤Ø¤Î»²¾È¤Ç¤¢¤ë¡£
143 ¤³¤Î¸å¤Ç
144 .I pathname
145 ¤¬ºï½ü¤µ¤ì¤¿¤ê¡¢Â¾¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¤è¤¦¤ËÊѹ¹¤µ¤ì¤¿¤ê¤·¤Æ¤â¡¢
146 ¤³¤Î»²¾È¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£
147 ¿·¤·¤¤¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ÏºÇ½é¤Ï¾¤Î¤É¤Î¥×¥í¥»¥¹¤È¤â
148 ¶¦Í­¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢
149 .BR fork (2)
150 ¤Ç¶¦Í­¤¬µ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£
151 .PP
152 °ú¤­¿ô
153 .I flags
154 ¤Ë¤Ï¡¢¥¢¥¯¥»¥¹¥â¡¼¥É
155 .BR O_RDONLY ", " O_WRONLY ", " O_RDWR
156 ¤Î¤É¤ì¤«¤Ò¤È¤Ä¤¬Æþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
157 ¤³¤ì¤é¤Ï¤½¤ì¤¾¤ìÆɤ߹þ¤ßÀìÍÑ¡¢½ñ¤­¹þ¤ßÀìÍÑ¡¢Æɤ߽ñ¤­ÍѤË
158 ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤òÍ׵᤹¤ë¤â¤Î¤Ç¤¢¤ë¡£
159
160 ¤µ¤é¤Ë¡¢
161 .I flags
162 ¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° (file creation flag) ¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰
163 (file status flag) ¤ò 0 ¸Ä°Ê¾å¡Ö¥Ó¥Ã¥Èñ°Ì¤Î OR (bitwise-or)¡×¤Ç
164 »ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
165 .I ¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥°
166 ¤Ï
167 .BR O_CREAT ", " O_EXCL ", " O_NOCTTY ", " O_TRUNC
168 ¤Ç¤¢¤ë¡£
169 .I ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰
170 ¤Ï°Ê²¼¤Î¥ê¥¹¥È¤Î¤¦¤Á¾åµ­°Ê³°¤Î»Ä¤ê¤Î¤â¤Î¤Ç¤¢¤ë¡£
171 .\" FIXME . Actually is it true that the "file status flags" are all of the
172 .\" remaining flags listed below?  SUSv4 divides the flags into:
173 .\" * Access mode
174 .\" * File creation
175 .\" * File status
176 .\" * Other (O_CLOEXEC, O_DIRECTORY, O_NOFOLLOW)
177 .\" though it's not clear what the difference between "other" and
178 .\" "File creation" flags is.  (I've raised an Aardvark to see if this
179 .\" can be clarified in SUSv4; 10 Oct 2008.)
180 Æó¼ïÎà¤Î¥Õ¥é¥°¤Î°ã¤¤¤Ï¡¢¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ÎÊý¤Ï
181 .BR fcntl (2)
182 ¤ò»È¤Ã¤Æ¤½¤ÎÆâÍƤò¼èÆÀ¤·¤¿¤ê (¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï) Êѹ¹¤·¤¿¤ê¤Ç¤­¤ëÅÀ¤Ë¤¢¤ë¡£
183 ¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥°¤È¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤ÎÁ´¥ê¥¹¥È¤ò°Ê²¼¤Ë¼¨¤¹:
184 .TP
185 .B O_APPEND
186 ¥Õ¥¡¥¤¥ë¤òÄɲà(append) ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤¹¤ë¡£
187 Ëè²ó¤Î
188 .BR write (2)
189 ¤ÎÁ°¤Ë
190 .BR lseek (2)
191 ¤ò¹Ô¤Ã¤¿¤«¤Î¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë¡¦¥Ý¥¤¥ó¥¿¡¼¤ò¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë°ÜÆ°¤¹¤ë¡£
192 .\" For more background, see
193 .\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453946
194 .\" http://nfs.sourceforge.net/
195 NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¡¢
196 .B O_APPEND
197 ¤ò»ÈÍѤ¹¤ë¤È¡¢Ê£¿ô¤Î¥×¥í¥»¥¹¤¬¤Ò¤È¤Ä¤Î¥Õ¥¡¥¤¥ë¤ËƱ»þ¤Ë¥Ç¡¼¥¿¤òÄɲä·¤¿¾ì¹ç¡¢
198 ¥Õ¥¡¥¤¥ë¤¬²õ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ë¡£
199 ¤³¤ì¤Ï NFS ¤¬Äɲå⡼¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤¿¤á¡¢
200 ¥¯¥é¥¤¥¢¥ó¥È¤Î¥«¡¼¥Í¥ë (kernel) ¤¬¤½¤ì¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤À¤¬¡¢
201 ¶¥¹ç¾õÂÖ¤òÈò¤±¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
202 .TP
203 .B O_ASYNC
204 ¥·¥°¥Ê¥ë¶îÆ° I/O (signal-driven I/O) ¤òÍ­¸ú¤Ë¤¹¤ë:
205 ¤³¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø¤Î
206 ÆþÎϤޤ¿¤Ï½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Ë¡¢¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ë
207 (¥Ç¥Õ¥©¥ë¥È¤Ï
208 .B SIGIO
209 ¤Ç¤¢¤ë¤¬¡¢
210 .BR fcntl (2)
211 ¤Ë¤è¤Ã¤ÆÊѹ¹²Äǽ¤Ç¤¢¤ë)¡£
212 ¤³¤Îµ¡Ç½¤¬»ÈÍѲÄǽ¤Ê¤Î¤ÏüËö¡¢µ¿»÷üËö¡¢¥½¥±¥Ã¥È¤Î¤ß¤Ç¤¢¤ê¡¢
213 (Linux 2.6 °Ê¹ß¤Ç¤Ï) ¥Ñ¥¤¥×¤È FIFO ¤ËÂФ·¤Æ¤â»ÈÍѤǤ­¤ë¡£
214 ¤µ¤é¤Ë¾Ü¤·¤¤ÀâÌÀ¤Ï
215 .BR fcntl (2)
216 ¤ò»²¾È¤¹¤ë¤³¤È¡£
217 .TP
218 .BR O_CLOEXEC " (Linux 2.6.23 °Ê¹ß)"
219 ¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ close-on-exec ¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¡£
220 ¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï
221 .B FD_CLOEXEC
222 ¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Î
223 .BR fcntl (2)
224 .B F_SETFD
225 Áàºî¤òÊÌÅӸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£
226 ¤Þ¤¿¡¢¤¢¤ë¼ï¤Î¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ï¤³¤Î¥Õ¥é¥°¤Î»ÈÍѤÏ
227 ÉԲķç¤Ç¤¢¤ë¡£¤Ê¤¼¤Ê¤é¡¢¸ÄÊ̤Ë
228 .B FD_CLOEXEC
229 ¥Õ¥é¥°¤òÀßÄꤹ¤ë
230 .BR fcntl (2)
231 .B F_SETFD
232 Áàºî¤ò¸Æ¤Ó½Ð¤·¤¿¤È¤·¤Æ¤â¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤¬¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò
233 ¥ª¡¼¥×¥ó¤¹¤ë¤Î¤ÈƱ»þ¤ËÊ̤Υ¹¥ì¥Ã¥É¤¬
234 .BR fork (2)
235 ¤È
236 .BR execve (2)
237 ¤ò¼Â¹Ô¤¹¤ë¤È¤¤¤¦¶¥¹ç¾ò·ï¤òÈò¤±¤ë¤Î¤Ë¤Ï½½Ê¬¤Ç¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£
238 .\" This flag fixes only one form of the race condition;
239 .\" The race can also occur with, for example, descriptors
240 .\" returned by accept(), pipe(), etc.
241 .TP
242 .B O_CREAT
243 ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏºîÀ® (create) ¤¹¤ë¡£
244 ¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô (¥æ¡¼¥¶¡¼ ID) ¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤ËÀßÄꤵ¤ì¤ë¡£
245 ¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥°¥ë¡¼¥× ID
246 ¤Þ¤¿¤Ï¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥× ID ¤ËÀßÄꤵ¤ì¤ë
247 (¤³¤ì¤Ï¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¿¥¤¥×¡¢¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó¡¢
248 ¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥â¡¼¥É¤Ë°Í¸¤¹¤ë¡£
249 .BR mount (8)
250 ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Þ¥¦¥ó¥È¥ª¥×¥·¥ç¥ó
251 .I bsdgroups
252 ¤È
253 .I sysvgroups
254 ¤ò»²¾È)¡£
255 .\" 2.6.25 »þÅÀ¤Ç¤Ï¡¢bsdgroups ¤Ï ext2, ext3, ext4, XFS ¤Ç¥µ¥Ý¡¼¥È
256 .\" ¤µ¤ì¤Æ¤¤¤ë (2.6.14 °Ê¹ß)¡£
257 .RS
258 .PP
259 .I mode
260 ¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¾ì¹ç¤Ë»ÈÍѤ¹¤ë¥¢¥¯¥»¥¹µö²Ä (permission) ¤ò»ØÄꤹ¤ë¡£
261 .I flags
262 ¤Ë
263 .B O_CREAT
264 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
265 .I mode
266 ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
267 .B O_CREAT
268 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
269 .I mode
270 ¤Ï̵»ë¤µ¤ì¤ë¡£
271 Í­¸ú¤Ê¥¢¥¯¥»¥¹µö²Ä¤Ï¡¢ÉáÃʤÈƱ¤¸¤è¤¦¤Ë¥×¥í¥»¥¹¤Î
272 .I umask
273 ¤Ë¤è¤Ã¤Æ½¤Àµ¤µ¤ì¡¢ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Îµö²Ä¤Ï
274 .I "(mode\ &\ ~umask)"
275 ¤È¤Ê¤ë¡£
276 ¤³¤Î¥â¡¼¥É¤Ï¡¢¿·¤·¤¯ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¤½¤ì°Ê¹ß¤Î¥¢¥¯¥»¥¹
277 ¤Ë¤Î¤ßŬÍѤµ¤ì¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£
278 Æɤ߼è¤êÀìÍѤΥե¡¥¤¥ë¤òºîÀ®¤¹¤ë
279 .BR open ()
280 ¥³¡¼¥ë¤Ç¤¢¤Ã¤Æ¤â¡¢
281 Æɤ߽ñ¤­²Äǽ¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¤³¤È¤¬¤¢¤ê¤¦¤ë¡£
282 .PP
283 .I mode
284 ¤Î¤¿¤á¤Ë°Ê²¼¤Î¥·¥ó¥Ü¥ëÄê¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë :
285 .TP 9
286 .B S_IRWXU
287 00700 ¥æ¡¼¥¶¡¼ (¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô) ¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢
288 ¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£
289 .TP
290 .B S_IRUSR
291 00400 ¥æ¡¼¥¶¡¼¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£
292 .TP
293 .B S_IWUSR
294 00200 ¥æ¡¼¥¶¡¼¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£
295 .TP
296 .B S_IXUSR
297 00100 ¥æ¡¼¥¶¡¼¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£
298 .TP
299 .B S_IRWXG
300 00070 ¥°¥ë¡¼¥×¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£
301 .TP
302 .B S_IRGRP
303 00040 ¥°¥ë¡¼¥×¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£
304 .TP
305 .B S_IWGRP
306 00020 ¥°¥ë¡¼¥×¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£
307 .TP
308 .B S_IXGRP
309 00010 ¥°¥ë¡¼¥×¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£
310 .TP
311 .B S_IRWXO
312 00007 Â¾¿Í (others) ¤ËÆɤ߹þ¤ß¡¢½ñ¤­¹þ¤ß¡¢¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£
313 .TP
314 .B S_IROTH
315 00004 Â¾¿Í¤ËÆɤ߹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£
316 .TP
317 .B S_IWOTH
318 00002 Â¾¿Í¤Ë½ñ¤­¹þ¤ß¤Îµö²Ä¤¬¤¢¤ë¡£
319 .TP
320 .B S_IXOTH
321 00001 Â¾¿Í¤Ë¼Â¹Ô¤Îµö²Ä¤¬¤¢¤ë¡£
322 .RE
323 .TP
324 .BR O_DIRECT " (Linux 2.4.10 °Ê¹ß)"
325 ¤³¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë I/O ¤Î¥­¥ã¥Ã¥·¥å¤Î¸ú²Ì¤òºÇ¾®²½¤·¤è¤¦¤È¤¹¤ë¡£
326 ¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È¡¢°ìÈÌŪ¤ËÀ­Ç½¤¬Äã²¼¤¹¤ë¡£
327 ¤·¤«¤·¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Æȼ«¤Ë¥­¥ã¥Ã¥·¥ó¥°¤ò¹Ô¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê
328 ÆÃÊ̤ʾì¹ç¤Ë¤ÏÌò¤ËΩ¤Ä¡£
329 ¥Õ¥¡¥¤¥ë¤Î I/O ¤Ï¥æ¡¼¥¶¡¼¶õ´Ö¥Ð¥Ã¥Õ¥¡¤ËÂФ·¤ÆľÀܹԤï¤ì¤ë¡£
330 .B O_DIRECT
331 ¥Õ¥é¥°¼«¿È¤Ï¥Ç¡¼¥¿¤òƱ´ü¤ÇžÁ÷¤·¤è¤¦¤È¤Ï¤¹¤ë¤¬¡¢
332 .B O_SYNC
333 ¤Î¤è¤¦¤Ë¥Ç¡¼¥¿¤ÈɬÍפʥ᥿¥Ç¡¼¥¿¤ÎžÁ÷¤¬Êݾڤµ¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
334 Ʊ´ü I/O ¤òÊݾڤ¹¤ë¤¿¤á¤Ë¤Ï¡¢
335 .B O_DIRECT
336 ¤Ë²Ã¤¨¤Æ
337 .B O_SYNC
338 ¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
339 ¡ÖÃí°Õ¡×¤ÎÀá (²¼µ­) ¤ÎµÄÏÀ¤â»²¾È¡£
340 .sp
341 ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë»÷Ä̤ä¿°ÕÌ£¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬
342 .BR raw (8)
343 ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë (⤷¡¢¤³¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÈó¿ä¾©¤Ç¤¢¤ë)¡£
344 .TP
345 .B O_DIRECTORY
346 \fIpathname\fP ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤±¤ì¤Ð¥ª¡¼¥×¥ó¤Ï¼ºÇÔ¤¹¤ë¡£
347 .\" °Ê²¼¤Îµ­»ö¤È¤½¤Î¥ê¥×¥é¥¤¤ò»²¾È¤Î¤³¤È¡£
348 .\" http://marc.theaimsgroup.com/?t=112748702800001&r=1&w=2
349 .\" [PATCH] open: O_DIRECTORY and O_CREAT together should fail
350 .\" O_DIRECTORY | O_CREAT ¤ò»ØÄꤹ¤ë¤È O_DIRECTORY ¤¬Ìµ»ë¤µ¤ì¤Æ¤·¤Þ¤¦¡£
351 ¤³¤Î¥Õ¥é¥°¤Ï Linux ÆÃÍ­¤Ç¤¢¤ê¡¢
352 .BR opendir (3)
353 ¤¬ FIFO ¤ä¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¥³¡¼¥ë¤µ¤ì¤¿¾ì¹ç¤Î
354 ¥µ¡¼¥Ó¥¹ÉÔǽ (denial-of-service) ¹¶·â¤òÈò¤±¤ë¤¿¤á¤Ë
355 ¥«¡¼¥Í¥ë 2.1.126 ¤ÇÄɲ䵤줿¡£
356 ¤·¤«¤·¤³¤ì¤Ï
357 .BR opendir (3)
358 ¤Î¼ÂÁõ°Ê³°¤Ç¤Ï»ÈÍѤ¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
359 .TP
360 .B O_EXCL
361 ¤³¤Î¸Æ¤Ó½Ð¤·¤Ç¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¡£
362 ¤³¤Î¥Õ¥é¥°¤¬
363 .B O_CREAT
364 ¤È°ì½ï¤Ë»ØÄꤵ¤ì¡¢
365 .I pathname
366 ¤Î¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¤¿¾ì¹ç¡¢
367 .BR open ()
368 ¤Ï¼ºÇÔ¤¹¤ë¡£
369 .B O_CREAT
370 ¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Î
371 .B O_EXCL
372 ¤ÎÆ°ºî¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
373
374 ¤³¤ì¤éÆó¤Ä¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿ºÝ¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ïé¤é¤ì¤Ê¤¤¡£
375 .\" POSIX.1-2001 ¤Ç¤ÏÌÀ¼¨Åª¤Ë¤³¤ÎÆ°ºî¤òÍ׵ᤷ¤Æ¤¤¤ë¡£
376 .I pathname
377 ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¡¢
378 ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬¤É¤³¤ò»Ø¤·¤Æ¤¤¤ë¤«¤Ë´Ø¤ï¤é¤º
379 .BR open ()
380 ¤Ï¼ºÇÔ¤¹¤ë¡£
381
382 NFS ¤Ç¤Ï¡¢
383 .B O_EXCL
384 ¤Ï¡¢Linux 2.6 °Ê¹ß¤Ç NFSv3 °Ê¹ß¤ò»È¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£
385 .B O_EXCL
386 ¥µ¥Ý¡¼¥È¤¬Ä󶡤µ¤ì¤Æ¤¤¤Ê¤¤ NFS ´Ä¶­¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ËÍê¤Ã¤Æ
387 ¥í¥Ã¥¯½èÍý¤ò¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤Ï¶¥¹ç¾õÂÖ (race condition) ¤Ë½Ð²ñ¤¦
388 ²ÄǽÀ­¤¬¤¢¤ë¡£
389 ¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤ÆÉÔ²Äʬ (atomic) ¤Ê¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤ò¼Â¸½¤·¡¢
390 NFS ¤¬
391 .B O_EXCL
392 ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤«¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤¤¾ì¹ç¡¢
393 °Ü¿¢À­¤Î¤¢¤ëÊýË¡¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¾¤È̾Á°¤Î½Å¤Ê¤é¤Ê¤¤
394 ¥Õ¥¡¥¤¥ë (Î㤨¤Ð¥Û¥¹¥È̾¤È PID ¤òÁȤ߹ç¤ï¤»¤¿Ì¾Á°) ¤òºîÀ®¤·¡¢
395 .BR link (2)
396 ¤ò»ÈÍѤ·¤Æ¤½¤Î¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯¤òºîÀ®¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£
397 .BR link (2)
398 ¥³¡¼¥ë¤ÎÊÖ¤êÃͤ¬ 0 ¤Ê¤é¤Ð¥í¥Ã¥¯¤ËÀ®¸ù¤·¤Æ¤¤¤ë¡£
399 ¤¢¤ë¤¤¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ë
400 .BR stat (2)
401 ¤ò»ÈÍѤ·¤Æ¥ê¥ó¥¯¿ô (link count) ¤¬ 2 ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
402 ¤½¤¦¤Ê¤Ã¤Æ¤¤¤ì¤Ð¡¢Æ±¤¸¤¯¥í¥Ã¥¯¤ËÀ®¸ù¤·¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£
403 .TP
404 .B O_LARGEFILE
405 (LFS)
406 .I off_t
407 ¤Ç¤Ï¥µ¥¤¥º¤òɽ¤»¤Ê¤¤ (¤À¤À¤·
408 .I off64_t
409 ¤Ç¤Ï¥µ¥¤¥º¤òɽ¤»¤ë) ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó²Äǽ¤Ë¤¹¤ë¡£
410 ¤³¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢
411 (¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë)
412 .B _LARGEFILE64_SOURCE
413 ¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
414 32¥Ó¥Ã¥È¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤ÆÂ礭¤Ê¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ëÊýË¡¤òÆÀ¤¿¤¤¾ì¹ç¡¢
415 .RB ( O_LARGEFILE
416 ¤ò»È¤¦¤è¤ê¤â)
417 .B _FILE_OFFSET_BITS
418 µ¡Ç½¸¡ºº¥Þ¥¯¥í¤ò¥»¥Ã¥È¤¹¤ëÊý¤¬Ë¾¤Þ¤·¤¤ÊýË¡¤Ç¤¢¤ë
419 .RB ( feature_test_macros (7)
420 ¤ò»²¾È)¡£
421 .TP
422 .BR O_NOATIME " (Linux 2.6.8 °Ê¹ß)"
423 ¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ
424 .BR read (2)
425 ¤¬¼Â¹Ô¤µ¤ì¤¿¤È¤­¤Ë¡¢ºÇ½ª¥¢¥¯¥»¥¹»þ¹ï (inode ¤Î st_atime) ¤ò¹¹¿·¤·¤Ê¤¤¡£
426 ¤³¤Î¥Õ¥é¥°¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹ºîÀ®¤ä¥Ð¥Ã¥¯¥¢¥Ã¥×¥×¥í¥°¥é¥à¤Ç»È¤¦¤³¤È¤ò°Õ¿Þ¤·¤Æ¤¤¤ë¡£
427 ¤³¤ì¤ò»È¤¦¤È¥Ç¥£¥¹¥¯¤ËÂФ¹¤ëÁàºî¤òÂçÉý¤Ë¸º¤é¤¹¤³¤È¤¬¤Ç¤­¤ë¡£
428 ¤³¤Î¥Õ¥é¥°¤ÏÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤ÆÍ­¸ú¤Ç¤¢¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
429 ¤½¤Î°ìÎ㤬 NFS ¤Ç¤¢¤ê¡¢¥µ¡¼¥Ð¤¬¥¢¥¯¥»¥¹»þ¹ï¤ò´ÉÍý¤·¤Æ¤¤¤ë¡£
430 .\" The O_NOATIME flag also affects the treatment of st_atime
431 .\" by mmap() and readdir(2), MTK, Dec 04.
432 .TP
433 .B O_NOCTTY
434 .I pathname
435 ¤¬Ã¼Ëö (terminal) ¥Ç¥Ð¥¤¥¹
436 \(em
437 .BR tty (4)
438 »²¾È
439 \(em
440 ¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢¤¿¤È¤¨¤½¤Î¥×¥í¥»¥¹¤¬À©¸æüËö¤ò»ý¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¡¢
441 ¥ª¡¼¥×¥ó¤·¤¿¥Õ¥¡¥¤¥ë¤ÏÀ©¸æüËö¤Ë¤Ï¤Ê¤é¤Ê¤¤¡£
442 .TP
443 .B O_NOFOLLOW
444 \fIpathname\fP ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤À¤Ã¤¿¾ì¹ç¡¢¥ª¡¼¥×¥ó¤Ï¼ºÇÔ¤¹¤ë¡£
445 ¤³¤ì¤Ï FreeBSD ¤Î³ÈÄ¥¤Ç¡¢Linux ¤Ë¤Ï 2.1.126 ¤è¤êÄɲ䵤줿¡£
446 pathname ¤ÎÁ°¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È (earlier component;
447 ÌõÃð: ºÇ¸å¤Î¥Ç¥£¥ì¥¯¥È¥ê¥»¥Ñ¥ì¡¼¥¿¤è¤êÁ°¤ÎÉôʬ) ¤¬
448 ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤¬»Ø¤¹À褬»²¾È¤µ¤ì¤ë¡£
449 .\" glibc 2.0.100 °Ê¹ß¤Î¥Ø¥Ã¥À¡¼¤Ë¤Ï¤³¤Î¥Õ¥é¥°¤ÎÄêµÁ¤¬¤¢¤ë¡£
450 .\" \fI2.1.126 °ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç»ÈÍѤ·¤¿¾ì¹ç¤Ë¤Ï̵»ë¤µ¤ì¤ë¡£\fP
451 .TP
452 .BR O_NONBLOCK " ¤Þ¤¿¤Ï " O_NDELAY
453 ²Äǽ¤Ê¤é¤Ð¡¢¥Õ¥¡¥¤¥ë¤ÏÈóÄä»ß (nonblocking) ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£
454 .BR open ()
455 ¤â¡¢ÊÖ¤·¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ¹¤ë°Ê¸å¤Î¤¹¤Ù¤Æ¤ÎÁàºî¤â
456 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤òÂÔ¤¿¤»¤ë¤³¤È¤Ï¤Ê¤¤¡£
457 FIFO (¥Í¡¼¥à¥É¡¦¥Ñ¥¤¥×) ¤ò°·¤¦¾ì¹ç¤Ë¤Ï
458 .BR fifo (7)
459 ¤â»²¾È¤¹¤ë¤³¤È¡£
460 ¶¯À©¥Õ¥¡¥¤¥ë¥í¥Ã¥¯ (mandatory file lock) ¤ä¥Õ¥¡¥¤¥ë¥ê¡¼¥¹ (file lease)
461 ¤ÈÁȤ߹ç¤ï¤»¤¿¾ì¹ç¤Î¡¢
462 .B O_NONBLOCK
463 ¤Î¸ú²Ì¤Ë¤Ä¤¤¤Æ¤ÎµÄÏÀ¤Ï¡¢
464 .BR fcntl (2)
465 ¤ò»²¾È¤¹¤ë¤³¤È¡£
466 .TP
467 .B O_SYNC
468 ¥Õ¥¡¥¤¥ë¤ÏƱ´ü (synchronous) I/O ¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£
469 .BR open ()
470 ¤¬ÊÖ¤·¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ
471 .BR write (2)
472 ¤ò¹Ô¤¦¤È¡¢É¬¤º¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ò¥Ö¥í¥Ã¥¯¤·¡¢
473 ³ºÅö¥Ï¡¼¥É¥¦¥§¥¢¤ËʪÍýŪ¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¤Þ¤ÇÊÖ¤é¤Ê¤¤¡£
474 .I °Ê²¼¤Î¡ÖÃí°Õ¡×¤Î¾Ï¤â»²¾È¡£
475 .TP
476 .B O_TRUNC
477 ¥Õ¥¡¥¤¥ë¤¬´û¤Ë¸ºß¤·¡¢Ä̾ï¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢
478 ½ñ¤­¹þ¤ß²Ä¥â¡¼¥É¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë
479 (¤Ä¤Þ¤ê¡¢
480 .BR O_RDWR "¤Þ¤¿¤Ï" O_WRONLY
481 ¤Î) ¾ì¹ç¡¢Ä¹¤µ 0 ¤ËÀÚ¤êµÍ¤á (truncate) ¤é¤ì¤ë¡£
482 ¥Õ¥¡¥¤¥ë¤¬ FIFO ¤Þ¤¿¤ÏüËö¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢
483 .B O_TRUNC
484 ¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£
485 ¤½¤ì°Ê³°¤Î¾ì¹ç¡¢
486 .B O_TRUNC
487 ¤Î¸ú²Ì¤Ï̤ÄêµÁ¤Ç¤¢¤ë¡£
488 .PP
489 ¤³¤ì¤é¤ÎÁªÂò¥Õ¥é¥°¤Î¤¤¤¯¤Ä¤«¤Ï¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤¿¸å¤Ç¤â
490 .BR fcntl (2)
491 ¤ò»ÈÍѤ·¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
492
493 .BR creat ()
494 ¤Ï
495 .I flags
496 ¤Ë
497 .B O_CREAT|O_WRONLY|O_TRUNC
498 ¤ò»ØÄꤷ¤Æ
499 .BR open ()
500 ¤ò¹Ô¤¦¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£
501 .SH ÊÖ¤êÃÍ
502 .BR open ()
503 ¤È
504 .BR creat ()
505 ¤Ï¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
506 ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹
507 (¤½¤Î¾ì¹ç¤Ï
508 .I errno
509 ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë)¡£
510 .SH ¥¨¥é¡¼
511 .TP
512 .B EACCES
513 ¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ëÍ׵ᤵ¤ì¤¿¥¢¥¯¥»¥¹¤¬µö¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢
514 .I pathname
515 ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î²¿¤ì¤«¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£
516 ¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤»¤º¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¡£
517 .RB ( path_resolution (7)
518 ¤â»²¾È¤¹¤ë¤³¤È¡£)
519 .TP
520 .B EEXIST
521 .I pathname
522 ¤Ï´û¤Ë¸ºß¤·¡¢
523 .BR O_CREAT " ¤È " O_EXCL
524 ¤¬»ÈÍѤµ¤ì¤¿¡£
525 .TP
526 .B EFAULT
527 .I pathname
528 ¤Î»Ø¤¹Îΰ褬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤Ê¤¤¡£
529 .TP
530 .B EFBIG
531 .B EOVERFLOW
532 »²¾È¡£
533 .TP
534 .B EINTR
535 ÃÙ¤¤¥Ç¥Ð¥¤¥¹
536 (Î㤨¤Ð FIFO¡¢
537 .BR fifo (7)
538 »²¾È) ¤Î¥ª¡¼¥×¥ó¤¬´°Î»¤¹¤ë¤Î¤òÂԤäÆÄä»ß¤·¤Æ¤¤¤ë´Ö¤Ë
539 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿¡£
540 .BR signal (7)
541 »²¾È¡£
542 .TP
543 .B EISDIR
544 .I pathname
545 ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ßÍ׵᤬´Þ¤Þ¤ì¤Æ¤¤¤¿
546 (¤Ä¤Þ¤ê
547 .B O_WRONLY
548 ¤Þ¤¿¤Ï
549 .B O_RDWR
550 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë)¡£
551 .TP
552 .B ELOOP
553 .I pathname
554 ¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£
555 ¤Þ¤¿¤Ï \fBO_NOFOLLOW\fP ¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢
556 .I pathname
557 ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤À¤Ã¤¿¡£
558 .TP
559 .B EMFILE
560 ¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¿ô¤¬¤¹¤Ç¤ËºÇÂç¿ô¤Ë㤷¤Æ¤¤¤ë¡£
561 .TP
562 .B ENAMETOOLONG
563 .I pathname
564 ¤¬Ä¹²á¤®¤ë¡£
565 .TP
566 .B ENFILE
567 ¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤Î¹ç·×¿ô¤¬¥·¥¹¥Æ¥àÀ©¸Â¤Ë㤷¤Æ¤¤¤ë¡£
568 .TP
569 .B ENODEV
570 .I pathname
571 ¤¬¥Ç¥Ð¥¤¥¹¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê¡¢Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£
572 (¤³¤ì¤Ï Linux ¥«¡¼¥Í¥ë¤Î¥Ð¥°¤Ç¤¢¤ê¡¢¤³¤Î¾ì¹ç¤Ë¤Ï
573 .B ENXIO
574 ¤¬ÊÖ¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë)
575 .TP
576 .B ENOENT
577 .B O_CREAT
578 ¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢¤«¤Ä»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£
579 ¤Þ¤¿¤Ï¡¢
580 .I pathname
581 ¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬Â¸ºß¤·¤Ê¤¤¤«²õ¤ì¤¿ (dangling) ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¡£
582 .TP
583 .B ENOMEM
584 ¥«¡¼¥Í¥ë¤ËÍøÍѤǤ­¤ë¥á¥â¥ê¤¬ÉÔ­¤·¤Æ¤¤¤ë
585 .TP
586 .B ENOSPC
587 .I pathname
588 ¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ë¤¬¡¢
589 .I pathname
590 ¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥Ð¥¤¥¹¤Ë¿·¤·¤¤¥Õ¥¡¥¤¥ë¤Î¤¿¤á¤Î¶õ¤­ÍÆÎ̤¬¤Ê¤¤¡£
591 .TP
592 .B ENOTDIR
593 .I pathname
594 ¤Ë´Þ¤Þ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤Î¤É¤ì¤«¤¬¼ÂºÝ¤Ë¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£
595 ¤Þ¤¿¤Ï \fBO_DIRECTORY\fP ¤¬»ØÄꤵ¤ì¤Æ¤ª¤ê¡¢
596 .I pathname
597 ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£
598 .TP
599 .B ENXIO
600 .BR O_NONBLOCK " | " O_WRONLY
601 ¤¬ÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤¬ FIFO ¤Ç
602 ¤½¤Î¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ß¤Î¤¿¤á¤Ë¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£
603 ¤Þ¤¿¤Ï¡¢¥Õ¥¡¥¤¥ë¤¬¥Ç¥Ð¥¤¥¹¡¦¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤Ç
604 Âбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤¬Â¸ºß¤·¤Ê¤¤¡£
605 .TP
606 .B EOVERFLOW
607 .I pathname
608 ¤¬»²¾È¤·¤Æ¤¤¤ë¤Î¤¬¡¢Â礭²á¤®¤Æ¥ª¡¼¥×¥ó¤Ç¤­¤Ê¤¤Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£
609 Ä̾¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤Ï¡¢32 ¥Ó¥Ã¥È¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç
610 .I -D_FILE_OFFSET_BITS=64
611 ¤ò»ØÄꤻ¤º¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¡¢¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬
612 .I (2<31)-1
613 ¥Ó¥Ã¥È¤òĶ¤¨¤ë¥Õ¥¡¥¤¥ë¤ò³«¤³¤¦¤È¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£
614 ¾åµ­¤Î
615 .B O_LARGEFILE
616 ¤â»²¾È¡£
617 ¤³¤ì¤Ï POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Ç¤¢¤ë¡£
618 2.6.24 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Linux ¤Ï¤³¤Î¾ì¹ç¤Ë¥¨¥é¡¼
619 .B EFBIG
620 ¤òÊÖ¤·¤Æ¤¤¤¿¡£
621 .\" See http://bugzilla.kernel.org/show_bug.cgi?id=7253
622 .\" "Open of a large file on 32-bit fails with EFBIG, should be EOVERFLOW"
623 .\" Reported 2006-10-03
624 .TP
625 .B EPERM
626 .B O_NOATIME
627 ¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬
628 .\" ¸·Ì©¤Ë¸À¤¨¤Ð¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID...(MTK)
629 ¥Õ¥¡¥¤¥ë¤Î½êÍ­¼Ô¤È°ìÃפ»¤º¡¢¤«¤Ä¸Æ¤Ó½Ð¤·¸µ¤ËÆø¢
630 .RB ( CAP_FOWNER )
631 ¤¬¤Ê¤¤¡£
632 .TP
633 .B EROFS
634 .I pathname
635 ¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤ª¤ê¡¢
636 ½ñ¤­¹þ¤ß¥¢¥¯¥»¥¹¤¬Í׵ᤵ¤ì¤¿¡£
637 .TP
638 .B ETXTBSY
639 .I pathname
640 ¤¬¸½ºß¼Â¹ÔÃæ¤Î¼Â¹Ô¥¤¥á¡¼¥¸¤ò»²¾È¤·¤Æ¤ª¤ê¡¢½ñ¤­¹þ¤ß¤¬Í׵ᤵ¤ì¤¿¡£
641 .TP
642 .B EWOULDBLOCK
643 .B O_NONBLOCK
644 ¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤¿¤¬¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ë¤ÏÌ·½â¤¹¤ë¥ê¡¼¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿
645 .RB ( fcntl (2)
646 »²¾È)¡£
647 .SH ½àµò
648 SVr4, 4.3BSD, POSIX.1-2001.
649 ¥Õ¥é¥°
650 .BR O_DIRECTORY ,
651 .BR O_NOATIME ,
652 .B O_NOFOLLOW
653 ¤Ï Linux ÆÃÍ­¤Î¤â¤Î¤Ç¤¢¤ê¡¢
654 ¤³¤ì¤é¤Î¥Õ¥é¥°¤ÎÄêµÁ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢
655 (¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë)
656 .B _GNU_SOURCE
657 ¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
658
659 .BR O_CLOEXEC
660 ¥Õ¥é¥°¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢
661 POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
662
663 .B O_DIRECT
664 ¤Ï POSIX ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
665 .B O_DIRECT
666 ¤ÎÄêµÁ¤òÆÀ¤ë¤Ë¤Ï
667 (¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë)
668 .B _GNU_SOURCE
669 ¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
670 .SH Ãí°Õ
671 Linux ¤Ç¤Ï¡¢
672 .B O_NONBLOCK
673 ¥Õ¥é¥°¤Ï¡¢
674 open ¤ò¼Â¹Ô¤·¤¿¤¤¤¬ read ¤Þ¤¿¤Ï write ¤ò¼Â¹Ô¤¹¤ë°Õ¿Þ¤Ï
675 ɬ¤º¤·¤â¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
676 ¤³¤ì¤Ï
677 .BR ioctl (2)
678 ¤Î¤¿¤á¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢
679 ¥Ç¥Ð¥¤¥¹¤ò¥ª¡¼¥×¥ó¤¹¤ë¤È¤­¤Ë¤è¤¯ÍѤ¤¤é¤ì¤ë¡£
680
681 ¡Ö¥¢¥¯¥»¥¹¥â¡¼¥É¡×¤ÎÃÍ
682 .BR O_RDONLY ", " O_WRONLY ", " O_RDWR
683 ¤Ï¡¢
684 .I flags
685 ¤Ë»ØÄê¤Ç¤­¤ë¾¤ÎÃͤȰ㤤¡¢¸Ä¡¹¤Î¥Ó¥Ã¥È¤ò»ØÄꤹ¤ë¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢
686 ¤³¤ì¤é¤ÎÃͤÏ
687 .I flags
688 ¤Î²¼°Ì 2 ¥Ó¥Ã¥È¤òÄêµÁ¤¹¤ë¡£
689 .BR O_RDONLY ", " O_WRONLY ", " O_RDWR
690 ¤Ï¤½¤ì¤¾¤ì 0, 1, 2 ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
691 ¸À¤¤´¹¤¨¤ë¤È¡¢
692 .B "O_RDONLY | O_WRONLY"
693 ¤ÎÁȤ߹ç¤ï¤»¤ÏÏÀÍýŪ¤Ë´Ö°ã¤¤¤Ç¤¢¤ê¡¢³Î¤«¤Ë
694 .B O_RDWR
695 ¤ÈƱ¤¸°ÕÌ£¤Ç¤Ï¤Ê¤¤¡£
696 Linux ¤Ç¤Ï¡¢ÆÃÊ̤ʡ¢Èóɸ½à¤Ê¥¢¥¯¥»¥¹¥â¡¼¥É¤È¤·¤Æ 3 (¥Ð¥¤¥Ê¥ê¤Ç¤Ï 11) ¤¬
697 ͽÌ󤵤ì¤Æ¤ª¤ê
698 .I flags
699 ¤Ë»ØÄê¤Ç¤­¤ë¡£
700 ¤³¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¤ò»ØÄꤹ¤ë¤È¡¢¥Õ¥¡¥¤¥ë¤ÎÆɤ߽Ф·/½ñ¤­¹þ¤ßµö²Ä¤ò¥Á¥§¥Ã¥¯¤·¡¢
701 Æɤ߽Ф·¤Ë¤â½ñ¤­¹þ¤ß¤Ë¤â»ÈÍѤǤ­¤Ê¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
702 ¤³¤ÎÈóɸ½à¤Î¥¢¥¯¥»¥¹¥â¡¼¥É¤Ï¤¤¤¯¤Ä¤«¤Î Linux ¥É¥é¥¤¥Ð¤Ç»ÈÍѤµ¤ì¤Æ¤ª¤ê¡¢
703 ¥Ç¥Ð¥¤¥¹¸ÇÍ­¤Î
704 .BR ioctl (2)
705 Áàºî¤Ë¤Î¤ß»ÈÍѤµ¤ì¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ë¡£
706 .\" See for example util-linux's disk-utils/setfdprm.c
707 .\" For some background on access mode 3, see
708 .\" http://thread.gmane.org/gmane.linux.kernel/653123
709 .\" "[RFC] correct flags to f_mode conversion in __dentry_open"
710 .\" LKML, 12 Mar 2008
711 .LP
712 .B O_RDONLY | O_TRUNC
713 ¤Î±Æ¶Á¤Ï̤ÄêµÁ¤Ç¤¢¤ê¡¢¤½¤ÎÆ°ºî¤Ï¼ÂÁõ¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¡£
714 ¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥Õ¥¡¥¤¥ë¤Ï¼ÂºÝ¤ËÀÚ¤êµÍ¤á¤é¤ì¤ë¡£
715 .\" Linux 2.0, 2.5: truncate
716 .\" Solaris 5.7, 5.8: truncate
717 .\" Irix 6.5: truncate
718 .\" Tru64 5.1B: truncate
719 .\" HP-UX 11.22: truncate
720 .\" FreeBSD 4.7: truncate
721 .PP
722 NFS ¤ò¼Â¸½¤·¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Ë¤Ï¿¤¯¤ÎÉÔÈ÷¤¬¤¢¤ê¡¢ÆäË
723 .BR O_SYNC " ¤È " O_NDELAY
724 ¤Ë±Æ¶Á¤¹¤ë¡£
725
726 POSIX ¤Ç¤Ï¡¢3 ¼ïÎà¤ÎƱ´ü I/O ¤¬Ä󶡤µ¤ì¤Æ¤ª¤ê¡¢
727 .BR O_SYNC ,
728 .BR O_DSYNC ,
729 .BR O_RSYNC
730 ¥Õ¥é¥°¤¬¤³¤ì¤ËÂбþ¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡£
731 º£¤Î¤È¤³¤í (¥«¡¼¥Í¥ë 2.6.31)¡¢
732 Linux ¤Ç¤Ï
733 .B O_SYNC
734 ¤À¤±¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢
735 glibc ¤Ï
736 .B O_DSYNC
737 ¤È
738 .B O_RSYNC
739 ¤Ë
740 .B O_SYNC
741 ¤ÈƱ¤¸¿ôÃͤò³ä¤êÅö¤Æ¤Æ¤¤¤ë¡£
742 ¤Û¤È¤ó¤É¤Î Linux ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¼ÂºÝ¤Ë¤Ï POSIX ¤Î
743 .B O_SYNC
744 ¤ÎÆ°ºî¤Ç¤Ï¤Ê¤¯
745 .B O_DSYNC
746 ¤ÎÆ°ºî¤À¤±¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¡£
747 POSIX ¤Î
748 .B O_SYNC
749 ¤Ç¤Ï¡¢
750 .BR open ()
751 ¤¬¥æ¡¼¥¶¶õ´Ö¤ËÊÖ¤ëºÝ¤Ë¡¢½ñ¤­¹þ¤ß¤Ë´Ø¤¹¤ëÁ´¤Æ¤Î¥á¥¿¥Ç¡¼¥¿¤Î
752 ¹¹¿·¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£
753 °ìÊý¡¢
754 .B O_DSYNC
755 ¤Ç¤Ï¡¢
756 .BR open ()
757 ¤¬ÊÖ¤ë¤Þ¤Ç¤Ë¡¢¼ÂºÝ¤Î¥Õ¥¡¥¤¥ë¤Î¥Ç¡¼¥¿¤È¤½¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë
758 ɬÍפʥ᥿¥Ç¡¼¥¿¤À¤±¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤Þ¤ì¤Æ¤¤¤ì¤Ð¤è¤¤¡£
759
760 .BR open ()
761 ¤Ï¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢
762 .BR creat ()
763 ¤Ç¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Ê¤¤ÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£
764 Âå¤ï¤ê¤Ë
765 .BR mknod (2)
766 ¤ò»ÈÍѤ¹¤ë¡£
767 .LP
768 UID ¥Þ¥Ã¥Ô¥ó¥°¤ò»ÈÍѤ·¤Æ¤¤¤ë NFS ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¤Ç¤Ï¡¢
769 .BR open ()
770 ¤¬¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤·¤¿¾ì¹ç¤Ç¤â
771 .BR read (2)
772 ¤¬ \fBEACCES\fP ¤ÇµñÈݤµ¤ì¤ë¾ì¹ç¤¬¤¢¤ë¡£
773 ¤³¤ì¤Ï¥¯¥é¥¤¥¢¥ó¥È¤¬¥¢¥¯¥»¥¹µö²Ä¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤Ã¤Æ
774 .BR open ()
775 ¤ò¼Â¹Ô¤¹¤ë¤¬¡¢Æɤ߹þ¤ß¤ä½ñ¤­¹þ¤ß¤ÎºÝ¤Ë¤Ï
776 ¥µ¡¼¥Ð¡¼¤Ç UID ¥Þ¥Ã¥Ô¥ó¥°¤¬¹Ô¤ï¤ì¤ë¤¿¤á¤Ç¤¢¤ë¡£
777
778 ¥Õ¥¡¥¤¥ë¤¬¿·¤·¤¯ºîÀ®¤µ¤ì¤ë¤È¡¢
779 ¥Õ¥¡¥¤¥ë¤Î
780 .IR st_atime ,
781 .IR st_ctime ,
782 .I st_mtime
783 ¥Õ¥£¡¼¥ë¥É
784 (¤½¤ì¤¾¤ìºÇ½ª¥¢¥¯¥»¥¹»þ¹ï¡¢ºÇ½ª¾õÂÖÊѹ¹»þ¹ï¡¢ºÇ½ª½¤Àµ»þ¹ï¤Ç¤¢¤ë¡£
785 .BR stat (2)
786 »²¾È) ¤¬¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£
787 ¤µ¤é¤Ë¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Î
788 .I st_ctime
789 ¤È
790 .I st_mtime
791 ¤â¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£
792 ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ç¡¢O_TRUNC ¥Õ¥é¥°¤Ç¥Õ¥¡¥¤¥ë¤¬½¤Àµ¤µ¤ì¤¿¤È¤­¤Ï¡¢
793 ¥Õ¥¡¥¤¥ë¤Î
794 .I st_ctime
795 ¤È
796 .I st_mtime
797 ¥Õ¥£¡¼¥ë¥É¤¬¸½ºß»þ¹ï¤ËÀßÄꤵ¤ì¤ë¡£
798 .SS O_DIRECT
799 .LP
800 .B O_DIRECT
801 ¥Õ¥é¥°¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢¥æ¡¼¥¶¶õ´Ö¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤ä¥¢¥É¥ì¥¹¡¢
802 I/O ¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ë´Ø¤·¤Æ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤¬²Ý¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¡£
803 Linux ¤Ç¤Ï¡¢¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥«¡¼¥Í¥ë¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë
804 ¤è¤Ã¤Æ°Û¤Ê¤ê¡¢Á´¤¯À©¸Â¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤â¤¢¤ë¡£
805 ¤·¤«¤·¤Ê¤¬¤é¡¢¸½ºß¤Î¤È¤³¤í¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ä¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤Æ
806 ¤³¤¦¤·¤¿À©¸Â¤¬¤¢¤ë¤«¤ò¸«¤Ä¤±¤ë¤¿¤á¤Î¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¸þ¤±¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç
807 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÈó°Í¸¤Î¤â¤Î¤Ï¸ºß¤·¤Ê¤¤¡£
808 ¤¤¤¯¤Ä¤«¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢À©¸Â¤ò³Îǧ¤¹¤ë¤¿¤á¤ÎÆȼ«¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬
809 Ä󶡤µ¤ì¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢
810 .BR xfsctl (3)
811 ¤Î
812 .B XFS_IOC_DIOINFO
813 Ì¿Îá¤Ç¤¢¤ë¡£
814 .LP
815 Linux 2.4 ¤Ç¤Ï¡¢Å¾Á÷¥µ¥¤¥º¡¢
816 ¥æ¡¼¥¶¡¼¥Ð¥Ã¥Õ¥¡¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¡¢¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ï¡¢
817 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÏÀÍý¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
818 Linux 2.6 ¤Ç¤Ï¡¢512 ¥Ð¥¤¥È¤´¤È¤Î¶­³¦¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ì¤Ð½¼Ê¬¤Ç¤¢¤ë¡£
819 .LP
820 .B O_DIRECT
821 ¥Õ¥é¥°¤Ï  SGI IRIX ¤ÇƳÆþ¤µ¤ì¤¿¡£SGI IRIX ¤Ë¤â Linux 2.4 ¤ÈƱÍͤÎ
822 (¥æ¡¼¥¶¡¼¥Ð¥Ã¥Õ¥¡¤Î) ¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤¬¤¢¤ë¡£
823 ¤Þ¤¿¡¢IRIX ¤Ë¤ÏŬÀÚ¤ÊÇÛÃ֤ȥµ¥¤¥º¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î
824 .BR fcntl (2)
825 ¥³¡¼¥ë¤¬¤¢¤ë¡£
826 FreeBSD 4.x ¤âƱ¤¸Ì¾Á°¤Î¥Õ¥é¥°¤òƳÆþ¤·¤¿¤¬¡¢¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£
827 .LP
828 .B O_DIRECT
829 ¤¬ Linux ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤¿¤Î¤Ï¡¢¥«¡¼¥Í¥ë¥Ð¡¼¥¸¥ç¥ó 2.4.10 ¤Ç¤¢¤ë¡£
830 ¸Å¤¤ Linux ¥«¡¼¥Í¥ë¤Ï¡¢¤³¤Î¥Õ¥é¥°¤òñ¤Ë̵»ë¤¹¤ë¡£
831 .B O_DIRECT
832 ¥Õ¥é¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤â¤¢¤ê¡¢¤½¤Î¾ì¹ç¤Ï¡¢
833 .B O_DIRECT
834 ¤ò»ÈÍѤ¹¤ë¤È
835 .BR open ()
836 ¤Ï
837 .B EINVAL
838 ¤Ç¼ºÇÔ¤¹¤ë¡£
839 .LP
840 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¡¢
841 ÆäËƱ¤¸¥Õ¥¡¥¤¥ë¤Î½ÅÊ£¤¹¤ë¥Ð¥¤¥ÈÎΰè¤ËÂФ·¤Æ¡¢
842 .B O_DIRECT
843 ¤ÈÄ̾ï¤Î I/O ¤òº®¤¼¤Æ»È¤¦¤Î¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£
844 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¤³¤Î¤è¤¦¤Ê¾õ¶·¤Ë¤ª¤¤¤Æ°ì´ÓÀ­¤ÎÌäÂê¤òÀµ¤·¤¯
845 °·¤¦¤³¤È¤¬¤Ç¤­¤ë¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢Á´ÂΤΠI/O ¥¹¥ë¡¼¥×¥Ã¥È¤Ï
846 ¤É¤Á¤é¤«°ìÊý¤ò»ÈÍѤ¹¤ë¤È¤­¤ÈÈæ¤Ù¤ÆÄ㮤ˤʤë¤Ç¤¢¤í¤¦¡£
847 ƱÍͤˡ¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ
848 .BR mmap (2)
849 ¤ÈľÀÜ I/O
850 .RB ( O_DIRECT )
851 ¤òº®¤¼¤Æ»È¤¦¤Î¤âÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£
852 .LP
853 NFS ¤Ç
854 .B O_DIRECT
855 ¤ò»È¤Ã¤¿¾ì¹ç¤ÎÆ°ºî¤Ï¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¾ì¹ç¤È°ã¤¦¡£
856 ¸Å¤¤¥«¡¼¥Í¥ë¤ä¡¢¤¢¤ë¼ï¤ÎÀßÄê¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¥«¡¼¥Í¥ë¤Ï¡¢
857 .B O_DIRECT
858 ¤È NFS ¤ÎÁȤ߹ç¤ï¤»¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¡£
859 NFS ¥×¥í¥È¥³¥ë¼«ÂΤϥµ¡¼¥Ð¤Ë¥Õ¥é¥°¤òÅϤ¹µ¡Ç½¤Ï»ý¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢
860 .B O_DIRECT
861 I/O ¤Ï¥¯¥é¥¤¥¢¥ó¥È¾å¤Î¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤ò¥Ð¥¤¥Ñ¥¹¤¹¤ë¤À¤±¤Ë¤Ê¤ê¡¢
862 ¥µ¡¼¥Ð¤Ï I/O ¤ò¥­¥ã¥Ã¥·¥å¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
863 ¥¯¥é¥¤¥¢¥ó¥È¤Ï¡¢
864 .B O_DIRECT
865 ¤ÎƱ´üµ¡¹½¤òÊÝ»ý¤¹¤ë¤¿¤á¡¢¥µ¡¼¥Ð¤ËÂФ·¤Æ I/O ¤òƱ´ü¤·¤Æ¹Ô¤¦¤è¤¦¤Ë°ÍÍꤹ¤ë¡£
866 ¥µ¡¼¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢¤³¤¦¤·¤¿¾õ¶·²¼¡¢ÆäˠI/O ¥µ¥¤¥º¤¬¾®¤µ¤¤¾ì¹ç¤Ë
867 À­Ç½¤¬Â礭¤¯Îô²½¤¹¤ë¡£
868 ¤Þ¤¿¡¢¥µ¡¼¥Ð¤Ë¤è¤Ã¤Æ¤Ï¡¢I/O ¤¬°ÂÄꤷ¤¿¥¹¥È¥ì¡¼¥¸¤Ë¤Þ¤Ç¹Ô¤ï¤ì¤¿¤È¡¢
869 ¥¯¥é¥¤¥¢¥ó¥È¤ËÂФ·¤Æ±³¤ò¤Ä¤¯¤â¤Î¤â¤¢¤ë¡£
870 ¤³¤ì¤Ï¡¢¥µ¡¼¥Ð¤ÎÅŸ»¸Î¾ã¤¬µ¯¤³¤Ã¤¿ºÝ¤Ë¥Ç¡¼¥¿¤Î´°Á´À­¤¬Êݤ¿¤ì¤Ê¤¤
871 ´í¸±¤Ï¾¯¤·¤¢¤ë¤¬¡¢À­Ç½Ì̤ǤÎÉÔÍø¤Ê¾ò·ï¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¹Ô¤ï¤ì¤Æ¤¤¤ë¡£
872 Linux ¤Î NFS ¥¯¥é¥¤¥¢¥ó¥È¤Ç¤Ï
873 .B O_DIRECT
874 I/O 
875 ¤Ç¤Î¥¢¥é¥¤¥ó¥á¥ó¥È¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£
876 .PP
877 ¤Þ¤È¤á¤ë¤È¡¢
878 .B O_DIRECT
879 ¤Ï¡¢Ãí°Õ¤·¤Æ»È¤¦¤Ù¤­¤Ç¤¢¤ë¤¬¡¢¶¯ÎϤʥġ¼¥ë¤È¤Ê¤ë²ÄǽÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡£
880 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï
881 .B O_DIRECT
882 ¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï̵¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ëÀ­Ç½¸þ¾å¤Î¤¿¤á¤Î¥ª¥×¥·¥ç¥ó¤È
883 ¹Í¤¨¤Æ¤ª¤¯¤Î¤¬¤è¤¤¤Ç¤¢¤í¤¦¡£
884 .PP
885 .RS
886 ¡ÖO_DIRECT ¤Ç¤¤¤Ä¤âº¤¤ë¤Î¤Ï¡¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹Á´Éô¤¬ËÜÅö¤Ë¤ªÇϼ¯¤ÊÅÀ¤À¡£
887 ¤¿¤Ö¤ó´í¤Ê¤¤¥Þ¥¤¥ó¥É¥³¥ó¥È¥í¡¼¥ëºÞ¤Ç
888 Ƭ¤¬¤ª¤«¤·¤¯¤Ê¤Ã¤¿¥µ¥ë¤¬À߷פ·¤¿¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡× \(em Linus
889 .RE
890 .SH ¥Ð¥°
891 ¸½ºß¤Î¤È¤³¤í¡¢
892 .BR open ()
893 ¤Î¸Æ¤Ó½Ð¤·»þ¤Ë
894 .B O_ASYNC
895 ¤ò»ØÄꤷ¤Æ¥·¥°¥Ê¥ë¶îÆ° I/O ¤òÍ­¸ú¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
896 ¤³¤Î¥Õ¥é¥°¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï
897 .BR fcntl (2)
898 ¤ò»ÈÍѤ¹¤ë¤³¤È¡£
899 .\" FIXME . Check bugzilla report on open(O_ASYNC)
900 .\" See http://bugzilla.kernel.org/show_bug.cgi?id=5993
901 .SH ´ØÏ¢¹àÌÜ
902 .BR chmod (2),
903 .BR chown (2),
904 .BR close (2),
905 .BR dup (2),
906 .BR fcntl (2),
907 .BR link (2),
908 .BR lseek (2),
909 .BR mknod (2),
910 .BR mmap (2),
911 .BR mount (2),
912 .BR openat (2),
913 .BR read (2),
914 .BR socket (2),
915 .BR stat (2),
916 .BR umask (2),
917 .BR unlink (2),
918 .BR write (2),
919 .BR fopen (3),
920 .BR feature_test_macros (7),
921 .BR fifo (7),
922 .BR path_resolution (7),
923 .BR symlink (7)