OSDN Git Service

fe483d844391bbc285181e8ee6dfad8a04454888
[linuxjm/LDP_man-pages.git] / release / man2 / fcntl.2
1 '\" t
2 .\" Hey Emacs! This file is -*- nroff -*- source.
3 .\"
4 .\" This manpage is Copyright (C) 1992 Drew Eckhardt;
5 .\"                 and Copyright (C) 1993 Michael Haardt, Ian Jackson;
6 .\"                 and Copyright (C) 1998 Jamie Lokier;
7 .\"                 and Copyright (C) 2002 Michael Kerrisk.
8 .\"
9 .\" Permission is granted to make and distribute verbatim copies of this
10 .\" manual provided the copyright notice and this permission notice are
11 .\" preserved on all copies.
12 .\"
13 .\" Permission is granted to copy and distribute modified versions of this
14 .\" manual under the conditions for verbatim copying, provided that the
15 .\" entire resulting derived work is distributed under the terms of a
16 .\" permission notice identical to this one.
17 .\"
18 .\" Since the Linux kernel and libraries are constantly changing, this
19 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
20 .\" responsibility for errors or omissions, or for damages resulting from
21 .\" the use of the information contained herein.  The author(s) may not
22 .\" have taken the same level of care in the production of this manual,
23 .\" which is licensed free of charge, as they might when working
24 .\" professionally.
25 .\"
26 .\" Formatted or processed versions of this manual, if unaccompanied by
27 .\" the source, must acknowledge the copyright and authors of this work.
28 .\"
29 .\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
30 .\" Modified 1995-09-26 by Andries Brouwer <aeb@cwi.nl>
31 .\" and again on 960413 and 980804 and 981223.
32 .\" Modified 1998-12-11 by Jamie Lokier <jamie@imbolc.ucc.ie>
33 .\" Applied correction by Christian Ehrhardt - aeb, 990712
34 .\" Modified 2002-04-23 by Michael Kerrisk <mtk.manpages@gmail.com>
35 .\"     Added note on F_SETFL and O_DIRECT
36 .\"     Complete rewrite + expansion of material on file locking
37 .\"     Incorporated description of F_NOTIFY, drawing on
38 .\"             Stephen Rothwell's notes in Documentation/dnotify.txt.
39 .\"     Added description of F_SETLEASE and F_GETLEASE
40 .\" Corrected and polished, aeb, 020527.
41 .\" Modified 2004-03-03 by Michael Kerrisk <mtk.manpages@gmail.com>
42 .\"     Modified description of file leases: fixed some errors of detail
43 .\"     Replaced the term "lease contestant" by "lease breaker"
44 .\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
45 .\"     Added notes on capability requirements
46 .\" Modified 2004-12-08, added O_NOATIME after note from Martin Pool
47 .\" 2004-12-10, mtk, noted F_GETOWN bug after suggestion from aeb.
48 .\" 2005-04-08 Jamie Lokier <jamie@shareable.org>, mtk
49 .\"     Described behavior of F_SETOWN/F_SETSIG in
50 .\"     multithreaded processes, and generally cleaned
51 .\"     up the discussion of F_SETOWN.
52 .\" 2005-05-20, Johannes Nicolai <johannes.nicolai@hpi.uni-potsdam.de>,
53 .\"     mtk: Noted F_SETOWN bug for socket file descriptor in Linux 2.4
54 .\"     and earlier.  Added text on permissions required to send signal.
55 .\" 2009-09-30, Michael Kerrisk
56 .\"     Note obsolete F_SETOWN behavior with threads.
57 .\"     Document F_SETOWN_EX and F_GETOWN_EX
58 .\"
59 .\" Japanese Version Copyright (c) 1996 Takeshi Ueno
60 .\" and Copyright (c) 2005, 2006, 2008 Akihiro MOTOKI
61 .\"
62 .\" Translated 1996-07-03, Takeshi Ueno <tueno@vio.co.jp>
63 .\" Modified 1998-09-10, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
64 .\" Modified 1999-08-14, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
65 .\" Updated & Modified 2001-04-03, Yuichi SATO <ysato@h4.dion.ne.jp>
66 .\" Updated & Modified 2005-03-15, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
67 .\" Updated & Modified 2005-04-22, Akihiro MOTOKI
68 .\" Updated & Modified 2005-10-14, Akihiro MOTOKI
69 .\" Updated & Modified 2005-11-19, Akihiro MOTOKI, LDP v2.14
70 .\" Updated 2006-04-16, Akihiro MOTOKI, LDP v2.29
71 .\" Updated 2008-02-11, Akihiro MOTOKI, LDP v2.77
72 .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.09
73 .\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24
74 .\"
75 .\"WORD:        asynchronous I/O        ÈóƱ´ü I/O
76 .\"WORD:        descriptor              ¥Ç¥£¥¹¥¯¥ê¥×¥¿
77 .\"WORD:        open file description   ¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò
78 .\"WORD:        feature test macro      µ¡Ç½¸¡ºº¥Þ¥¯¥í
79 .\"WORD:        I/O availability signal I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë
80 .\"
81 .TH FCNTL 2 2009-10-17 "Linux" "Linux Programmer's Manual"
82 .SH Ì¾Á°
83 fcntl \- ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÁàºî¤ò¹Ô¤¦
84 .SH ½ñ¼°
85 .nf
86 .B #include <unistd.h>
87 .B #include <fcntl.h>
88 .sp
89 .BI "int fcntl(int " fd ", int " cmd ", ... /* " arg " */ );"
90 .fi
91 .SH ÀâÌÀ
92 .BR fcntl ()
93 ¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿
94 .I fd
95 ¤Ë´Ø¤·¤Æ²¼µ­¤ÎÁàºî¤ò¹Ô¤¦¡£Áàºî¤Ï
96 .I cmd
97 ¤Ë¤è¤Ã¤Æ·è¤Þ¤ë:
98
99 .BR fcntl ()
100 ¤Ï¥ª¥×¥·¥ç¥ó¤È¤·¤ÆÂè»°°ú¤­¿ô¤ò¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
101 Âè»°°ú¤­¿ô¤¬É¬Íפ«¤É¤¦¤«¤Ï
102 .I cmd
103 ¤Ë¤è¤ê·è¤Þ¤ë¡£
104 ɬÍפʰú¤­¿ô¤Î·¿¤Ï
105 .I cmd
106 ̾¤Î¸å¤í¤Î³ç¸ÌÆâ¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë
107 (¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢É¬Íפʷ¿¤Ï
108 .I long
109 ¤Ç¤¢¤ê¡¢¤³¤Î°ú¤­¿ô¤òɽ¤¹¤Î¤Ë
110 .I arg
111 ¤È¤¤¤¦Ì¾Á°¤ò»È¤Ã¤Æ¤¤¤ë)¡£
112 °ú¤­¿ô¤¬É¬Íפʤ¤¾ì¹ç¤Ë¤Ï
113 .I void
114 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£
115 .SS "¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½"
116 .TP
117 .BR F_DUPFD " (\fIlong\fP)"
118 ÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¦¤Á¡¢
119 .I arg
120 °Ê¾å¤ÇºÇ¾®¤Î¤â¤Î¤òõ¤·¡¢
121 .I fd
122 ¤Î¥³¥Ô¡¼¤È¤¹¤ë¡£¤³¤ì¤ÏÊ̤ηÁ¤Î
123 .BR dup2 (2)
124 ¤Ç¤¢¤ë¡£
125 .BR dup2 (2)
126 ¤Ç¤Ï»ØÄꤵ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»È¤ï¤ì¤ëÅÀ¤¬°ã¤¦¡£
127 .IP
128 À®¸ù¤¹¤ë¤È¡¢¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÊÖ¤µ¤ì¤ë¡£
129 .IP
130 ¾ÜºÙ¤Ï
131 .BR dup (2)
132 ¤ò»²¾È¤Î¤³¤È¡£
133 .TP
134 .BR F_DUPFD_CLOEXEC " (\fIlong\fP; Linux 2.6.24 °Ê¹ß)"
135 .B F_DUPFD
136 ¤ÈƱÍͤÀ¤¬¡¢¤½¤ì¤Ë²Ã¤¨¤ÆÊ£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ
137 close-on-exec ¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£
138 ¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥×¥í¥°¥é¥à¤Ï
139 .B FD_CLOEXEC
140 ¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë
141 .BR fcntl ()
142 ¤Î
143 .B F_SETFD
144 Áàºî¤òÄɲäǹԤ¦É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£
145 ¤³¤Î¥Õ¥é¥°¤¬¤Ê¤¼Í­ÍѤ«¤Ë¤Ä¤¤¤Æ¤Ï¡¢
146 .BR open (2)
147 ¤Î
148 .B O_CLOEXEC
149 ¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£
150 .SS "¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°"
151 °Ê²¼¤Î¥³¥Þ¥ó¥É¤ò»È¤Ã¤Æ¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë´ØÏ¢¤¹¤ë¥Õ¥é¥°
152 ¤òÁàºî¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
153 ¸½ºß¤Î¤È¤³¤í¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Õ¥é¥°¤Ï°ì¤Ä¤À¤±¤Ç¤¢¤ë:
154 .B FD_CLOEXEC
155 (close-on-exec ¥Õ¥é¥°)¡£
156 .B FD_CLOEXEC
157 ¥Ó¥Ã¥È¤¬ 0 ¤Ê¤é¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï
158 .BR execve (2)
159 ¤ò¹Ô¤Ã¤Æ¤â¥ª¡¼¥×¥ó¤µ¤ì¤¿¤Þ¤Þ¤À¤¬¡¢¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¥¯¥í¡¼¥º¤µ¤ì¤ë¡£
160 .TP
161 .BR F_GETFD " (\fIvoid\fP)"
162 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤òÆɤ߽Ф¹¡£
163 .I arg
164 ¤Ï̵»ë¤µ¤ì¤ë¡£
165 .TP
166 .BR F_SETFD " (\fIlong\fP)"
167 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥°¤Ë
168 .I arg
169 ¤Ç»ØÄꤷ¤¿ÃͤòÀßÄꤹ¤ë¡£
170 .SS "¥Õ¥¡¥¤¥ë¾õÂ֥ե饰"
171 ¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Ë¤Ï¡¢
172 ¥Õ¥¡¥¤¥ëµ­½ÒËè¤ËÀßÄꤵ¤ì¤ë¾õÂ֥ե饰¤¬¤¤¤¯¤Ä¤«¤¢¤ë¡£¤³¤ì¤é¤Î¥Õ¥é¥°¤Ï
173 .BR open (2)
174 .\" ¤ä
175 .\" .BR creat (2)
176 ¤Ë¤è¤Ã¤Æ½é´ü²½¤µ¤ì¡¢
177 .BR fcntl (2)
178 ¤Ë¤è¤êÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£¤³¤ì¤é¤Ï¡¢
179 .RB ( dup (2),
180 .BR fcntl (F_DUPFD),
181 .BR fork (2)
182 ¤Ê¤É¤Ç) Ê£À½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿Æ±»Î¤Ï
183 Ʊ¤¸¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ò»²¾È¤¹¤ë¡£
184 ¤½¤Î¤¿¤á¡¢
185 Ʊ¤¸¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬¶¦Í­¤µ¤ì¤ë¡£
186
187 ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤È¤½¤Î°ÕÌ£¤Ï
188 .BR open (2)
189 ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¡£
190 .TP
191 .BR F_GETFL " (\fIvoid\fP)"
192 ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤òÆɤ߽Ф¹¡£
193 .I arg
194 ¤Ï̵»ë¤µ¤ì¤ë¡£
195 .TP
196 .BR F_SETFL " (\fIlong\fP)"
197 ¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤Ë
198 .I arg
199 ¤Ç»ØÄꤵ¤ì¤¿ÃͤòÀßÄꤹ¤ë¡£
200 .I arg
201 ¤Î¤¦¤Á¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹¥â¡¼¥É
202 .RB ( O_RDONLY ", " O_WRONLY ", " O_RDWR )
203 ¤È¥Õ¥¡¥¤¥ëºîÀ®¥Õ¥é¥° (¤¹¤Ê¤ï¤Á
204 .BR O_CREAT ", " O_EXCL ", " O_NOCTTY ", " O_TRUNC )
205 ¤Ë´Ø¤¹¤ë¥Ó¥Ã¥È¤Ï̵»ë¤µ¤ì¤ë¡£
206 Linux ¤Ç¤Ï¡¢¤³¤Î¥³¥Þ¥ó¥É¤ÇÊѹ¹¤Ç¤­¤ë¤Î¤Ï
207 .BR O_APPEND ,
208 .BR O_ASYNC ,
209 .BR O_DIRECT ,
210 .BR O_NOATIME ,
211 .B O_NONBLOCK
212 ¥Õ¥é¥°¤À¤±¤Ç¤¢¤ë¡£
213 .\" FIXME . POSIX.1-2001 ¤Ë¤è¤ë¤È¡¢ O_SYNC ¤â fcntl(2) ¤ÇÊѹ¹¤Ç¤­¤ë¤Ù¤­¤À¤¬¡¢
214 .\" ¸½ºß¤Î¤È¤³¤í Linux ¤Ç¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
215 .\" http://bugzilla.kernel.org/show_bug.cgi?id=5994 »²¾È
216 .SS "¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯"
217 .BR F_GETLK ", " F_SETLK ", " F_SETLKW
218 ¤Ï¡¢¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯¤Î³ÍÆÀ¡¿²òÊü¡¿¥Æ¥¹¥È¤Î¤¿¤á¤Ë»ÈÍѤ¹¤ë
219 (¥ì¥³¡¼¥É¡¦¥í¥Ã¥¯¤Ï¥Õ¥¡¥¤¥ë¥»¥°¥á¥ó¥È¡¦¥í¥Ã¥¯¤ä
220 ¥Õ¥¡¥¤¥ëÎΰè¥í¥Ã¥¯¤È¤â¸Æ¤Ð¤ì¤ë)¡£
221 »°ÈÖÌܤΰú¤­¿ô
222 .I lock
223 ¤Ï¡¢°Ê²¼¤Ë¼¨¤¹¥Õ¥£¡¼¥ë¥É¤ò´Þ¤à¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë
224 (¥Õ¥£¡¼¥ë¥É¤Î½ç½ø¤Ï´Ø·¸¤Ê¤¯¡¢¹½Â¤ÂΤ˾¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤Ã¤Æ¤â¤è¤¤)¡£
225 .in +4n
226 .nf
227 .sp
228 struct flock {
229     ...
230     short l_type;    /* Type of lock: F_RDLCK,
231                         F_WRLCK, F_UNLCK */
232     short l_whence;  /* How to interpret l_start:
233                         SEEK_SET, SEEK_CUR, SEEK_END */
234     off_t l_start;   /* Starting offset for lock */
235     off_t l_len;     /* Number of bytes to lock */
236     pid_t l_pid;     /* PID of process blocking our lock
237                         (F_GETLK only) */
238     ...
239 };
240 .fi
241 .in
242 .P
243 ¤³¤Î¹½Â¤ÂΤÎ
244 .IR l_whence ", " l_start ", " l_len
245 ¥Õ¥£¡¼¥ë¥É¤Ç¡¢¥í¥Ã¥¯¤ò¹Ô¤¤¤¿¤¤¥Ð¥¤¥ÈÈϰϤò»ØÄꤹ¤ë¡£
246 ¥Õ¥¡¥¤¥ë¤ÎËöÈø¤è¤ê¸å¤í¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤ë¤¬¡¢
247 ¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤è¤êÁ°¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
248
249 .I l_start
250 ¤Ï¥í¥Ã¥¯¤ò¹Ô¤¦Îΰè¤Î³«»Ï¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£
251 ¤½¤Î°ÕÌ£¤Ï
252 .I l_whence
253 ¤Ë¤è¤ê°Û¤Ê¤ë:
254 .I l_whence
255 ¤¬
256 .B SEEK_SET
257 ¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¡¢
258 .I l_whence
259 ¤¬
260 .B SEEK_CUR
261 ¤Î¾ì¹ç¤Ï¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¡¢
262 .I l_whence
263 ¤¬
264 .B SEEK_END
265 ¤Î¾ì¹ç¤Ï¥Õ¥¡¥¤¥ë¤ÎËöÈø¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤È²ò¼á¤µ¤ì¤ë¡£
266 ¸å¤í¤Î£²¤Ä¤Î¾ì¹ç¤Ë¤Ï¡¢
267 ¥Õ¥¡¥¤¥ë¤ÎÀèƬ¤è¤êÁ°¤Ë¤Ê¤é¤Ê¤¤ÈϰϤǡ¢
268 .I l_start
269 ¤ËÉé¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
270
271 .I l_len
272 ¤Ï¥í¥Ã¥¯¤·¤¿¤¤¥Ð¥¤¥È¿ô¤ò¼¨¤¹¡£
273 .I l_len
274 ¤¬Àµ¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤µ¤ì¤ë¥Ð¥¤¥ÈÈϰϤÏ
275 .I l_start
276 °Ê¾å
277 .IR l_start + l_len \- 1
278 °Ê²¼¤È¤Ê¤ë¡£
279 .I l_len
280 ¤Ë 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä:
281 .IR l_whence " and " l_start
282 ¤Ç»ØÄꤵ¤ì¤ë°ÌÃÖ¤«¤é¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Þ¤Ç¤ÎÁ´¤Æ¤Î¥Ð¥¤¥È¤ò¥í¥Ã¥¯¤¹¤ë
283 (¥Õ¥¡¥¤¥ë¤¬¤É¤ó¤Ê¤ËÂ礭¤¯¤Ê¤Ã¤¿¤È¤·¤Æ¤â¥Õ¥¡¥¤¥ë¤ÎËöÈø¤Þ¤Ç¥í¥Ã¥¯¤¹¤ë)¡£
284
285 POSIX.1-2001 ¤Ç¤Ï¡¢Éé¤ÎÃͤÎ
286 .I l_len
287 ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¼ÂÁõ¤òǧ¤á¤Æ¤¤¤ë (ɬ¿Ü¤Ç¤Ï¤Ê¤¤)¡£
288 .I l_len
289 ¤¬Éé¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤µ¤ì¤ë¥Ð¥¤¥ÈÈϰϤÏ
290 .IR l_start + l_len
291 °Ê¾å
292 .IR l_start \-1
293 °Ê²¼¤È¤Ê¤ë¡£
294 ¤³¤ÎÆ°ºî¤Ï¥«¡¼¥Í¥ë 2.4.21 °Ê¹ß¤ª¤è¤Ó 2.5.49 °Ê¹ß¤Î Linux ¤Ç
295 ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£
296
297 .I l_type
298 ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÆɤ߽Ф·¥í¥Ã¥¯
299 .RB ( F_RDLCK )
300 ¤È½ñ¤­¹þ¤ß¥í¥Ã¥¯
301 .RB ( F_WRLCK )
302 ¤Î¤É¤Á¤é¤ò
303 ÀßÄꤹ¤ë¤«¤ò»ØÄꤹ¤ë¡£
304 ¥Õ¥¡¥¤¥ë¤Î¤¢¤ëÎΰè¤ËÂФ·¤Æ¡¢Æɤ߽Ф·¥í¥Ã¥¯ (¶¦Í­¥í¥Ã¥¯) ¤òÊÝ»ý¤Ç¤­¤ë
305 ¥×¥í¥»¥¹¿ô¤ËÀ©¸Â¤Ï¤Ê¤¤¤¬¡¢½ñ¤­¹þ¤ß¥í¥Ã¥¯ (ÇÓ¾¥í¥Ã¥¯) ¤òÊÝ»ý¤Ç¤­¤ë
306 ¤Î¤Ï°ì¤Ä¤Î¥×¥í¥»¥¹¤À¤±¤Ç¤¢¤ë¡£ÇÓ¾¥í¥Ã¥¯¤òÀßÄꤹ¤ë¤È¡¢(¶¦Í­¥í¥Ã¥¯¤«
307 ÇÓ¾¥í¥Ã¥¯¤Ë¤«¤«¤ï¤é¤º) Â¾¤Î¥í¥Ã¥¯¤Ï²¿¤âÀßÄê¤Ç¤­¤Ê¤¤¡£
308 °ì¤Ä¤Î¥×¥í¥»¥¹¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¤¢¤ëÎΰè¤ËÂФ·¤Æ°ì¼ïÎà¤Î¥í¥Ã¥¯¤·¤«ÊÝ»ý¤Ç¤­¤Ê¤¤¡£
309 ¿·µ¬¤Î¥í¥Ã¥¯¤¬¥í¥Ã¥¯¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ëÎΰè¤ËÂФ·¤ÆŬÍѤµ¤ì¤ë¤È¡¢´û¸¤Î¥í¥Ã¥¯
310 ¤Ï¿·µ¬¤Î¥í¥Ã¥¯¤Î¼ïÊ̤ËÊÑ´¹¤µ¤ì¤ë
311 (¿·µ¬¤Î¥í¥Ã¥¯¤Ç»ØÄꤵ¤ì¤¿¥Ð¥¤¥ÈÈϰϤ¬´û¸¥í¥Ã¥¯¤ÎÈϰϤȰìÃפ¹¤ë¾ì¹ç°Ê³°¤Ç¤Ï¡¢
312 ÊÑ´¹¤Î²áÄø¤Ç´û¸¤Î¥í¥Ã¥¯¤Îʬ³ä¡¢½Ì¾®¡¢·ë¹ç¤¬¹Ô¤ï¤ì¤ë¤³¤È¤¬¤¢¤ë)¡£
313 .TP
314 .BR F_SETLK " (\fIstruct flock *\fP)"
315 .RI ( l_type
316 ¤¬
317 .B F_RDLCK
318 ¤«
319 .B F_WRLCK
320 ¤Î¾ì¹ç¤Ï) ¥í¥Ã¥¯¤Î³ÍÆÀ¤ò¡¢
321 .RB ( F_UNLCK
322 ¤Î¾ì¹ç¤Ï) ¥í¥Ã¥¯¤Î²òÊü¤ò¡¢
323 .I flock
324 ¹½Â¤ÂΤΥե£¡¼¥ë¥É
325 .IR l_whence ", " l_start ", " l_len
326 ¤Ç»ØÄꤵ¤ì¤¿ÈϰϤΥХ¤¥È¤ËÂФ·¤Æ¹Ô¤¦¡£
327 »ØÄꤵ¤ì¤¿¥í¥Ã¥¯¤¬Â¾¤Î¥×¥í¥»¥¹¤¬ÀßÄꤷ¤Æ¤¤¤ë¥í¥Ã¥¯¤È¾×Æͤ¹¤ë¾ì¹ç¤Ï¡¢
328 \-1 ¤òÊÖ¤·¡¢
329 .I errno
330 ¤Ë
331 .B EACCES
332 ¤«
333 .B EAGAIN
334 ¤òÀßÄꤹ¤ë¡£
335 .TP
336 .BR F_SETLKW " (\fIstruct flock *\fP)"
337 .B F_SETLK
338 ¤ÈƱÍͤÀ¤¬¡¢¤³¤Á¤é¤Ç¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¾×Æͤ¹¤ë¥í¥Ã¥¯¤¬
339 ŬÍѤµ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¡¢¤½¤Î¥í¥Ã¥¯¤¬²òÊü¤µ¤ì¤ë¤Î¤òÂÔ¤ÄÅÀ¤¬°Û¤Ê¤ë¡£
340 ÂԤäƤ¤¤ë´Ö¤Ë¥·¥°¥Ê¥ë¤ò¼õ¤±¤¿¾ì¹ç¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÃæÃǤµ¤ì¡¢
341 (¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬Ìá¤Ã¤¿Ä¾¸å¤Ë) ÊÖ¤êÃÍ \-1 ¤òÊÖ¤¹ (¤Þ¤¿
342 .I errno
343 ¤Ë
344 .B EINTR
345 ¤¬ÀßÄꤵ¤ì¤ë;
346 .BR signal (7)
347 »²¾È)¡£
348 .TP
349 .BR F_GETLK " (\fIstruct flock *\fP)"
350 ¤³¤Î¥³¡¼¥ë¤Î¸Æ¤Ó½Ð¤·»þ¤Ë¤Ï¡¢
351 .I lock
352 ¤Ë¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤ËŬÍѤ·¤è¤¦¤È¤¹¤ë¥í¥Ã¥¯¤Ë´Ø¤¹¤ë¾ðÊó¤¬Æþ¤Ã¤Æ¤¤¤ë¡£
353 ¥í¥Ã¥¯¤òŬÍѤǤ­¤ë¾ì¹ç¤Ë¤Ï¡¢
354 .BR fcntl ()
355 ¤Ï¼ÂºÝ¤Ë¤Ï¥í¥Ã¥¯¤ò¹Ô¤ï¤º¡¢¹½Â¤ÂÎ
356 .I lock
357 ¤Î
358 .I l_type
359 ¥Õ¥£¡¼¥ë¥É¤Ë
360 .B F_UNLCK
361 ¤òÀßÄꤷ¡¢Â¾¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤»¤º¤Ë¡¢Éüµ¢¤¹¤ë¡£
362 °ã¤¦¼ïÊ̤Υí¥Ã¥¯¤¬ (°ì¤Ä¤â¤·¤¯¤ÏÊ£¿ô) Å¬ÍѤµ¤ì¤Æ¤¤¤Æ
363 ¥í¥Ã¥¯¤òŬÍѤǤ­¤Ê¤¤¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢
364 .BR fcntl ()
365 ¤Ï¡¢¸¶°ø¤È¤Ê¤Ã¤¿¥í¥Ã¥¯¤Î°ì¤Ä¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¾ðÊó¤ò¹½Â¤ÂÎ
366 .I lock
367 ¤Î¥Õ¥£¡¼¥ë¥É
368 .IR l_type ", " l_whence ", " l_start ", " l_len
369 ¤Ë³ÊǼ¤·¡¢¤Þ¤¿
370 .I l_pid
371 ¤Ë¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î PID ¤òÀßÄꤷ¤Æ¡¢Éüµ¢¤¹¤ë¡£
372 .P
373 Æɤ߽Ф·¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢
374 .I fd
375 ¤ÏÆɤ߽Ф·ÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
376 ½ñ¤­¹þ¤ß¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢
377 .I fd
378 ¤Ï½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
379 Æɤ߽ñ¤­Î¾Êý¤Î¥í¥Ã¥¯¤òŬÍѤ¹¤ë¤Ë¤Ï¡¢Æɤ߽ñ¤­Î¾ÍѤÇ
380 ¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
381 .P
382 ¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Ï¡¢
383 .B F_UNLCK
384 ¤Ë¤è¤êÌÀ¼¨Åª¤Ëºï½ü¤µ¤ì¤ë¤À¤±¤Ç¤Ê¤¯¡¢
385 ¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤ä¡¢¥í¥Ã¥¯¤¬Å¬ÍѤµ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë
386 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤¬¥¯¥í¡¼¥º¤µ¤ì¤¿¾ì¹ç¤Ë¤â²òÊü¤µ¤ì¤ë¡£
387 ¤³¤Î¥í¥Ã¥¯¤Î²òÊü¤Ï¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤ë¡£
388 .\" .RB ( open "(2), " dup "(2), " dup2 "(2), " fcntl ()
389 .\" ¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆƱ¤¸¥Õ¥¡¥¤¥ë¤ò»²¾È¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬
390 .\" Â¾¤Ë¤â¤Ç¤­¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤)
391 ¤³¤ÎÆ°ºî¤Ï¤Þ¤º¤¤: ¤¢¤ë¥×¥í¥»¥¹¤¬
392 .I /etc/passwd
393 ¤ä
394 .I /etc/mtab
395 ¤È¤¤¤Ã¤¿¥Õ¥¡¥¤¥ë¤Ë¥í¥Ã¥¯¤òŬÍѤ·¤Æ¤¤¤ë¤È¤­¤Ë¡¢
396 ¤¢¤ë¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬²¿¤«¤ÎÍýͳ¤ÇƱ¤¸¥Õ¥¡¥¤¥ë¤ò open, read, close
397 ¤¹¤ë¤È¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥í¥Ã¥¯¤¬¼º¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
398 .P
399 ¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Ï
400 .BR fork (2)
401 ¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï·Ñ¾µ¤µ¤ì¤Ê¤¤¤¬¡¢
402 .BR execve (2)
403 ¤ÎÁ°¸å¤Ç¤ÏÊݸ¤µ¤ì¤ë¡£
404 .P
405 .BR stdio (3)
406 ¤Ç¤Ï¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤¬¹Ô¤ï¤ì¤ë¤Î¤Ç¡¢
407 stdio ´ØÏ¢¤Î´Ø¿ô¤Ç¤Ï¥ì¥³¡¼¥É¤Î¥í¥Ã¥¯¤Î»ÈÍѤϲóÈò¤µ¤ì¤ë;
408 Âå¤ï¤ê¤Ë
409 .BR read (2)
410 ¤ä
411 .BR write (2)
412 ¤ò»ÈÍѤ¹¤ë¤³¤È¡£
413 .SS "¶¯À©¥í¥Ã¥¯ (mandatory locking)"
414 ¾å½Ò¤Î¥í¥Ã¥¯¤Ë¤Ï¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯ (advisory lock) ¤È¶¯À©¥í¥Ã¥¯ (mandatory
415 lock) ¤ÎÆó¼ïÎब¤¢¤ë¤¬¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤È¤Ê¤ë¡£
416
417 ¥¢¥É¥Ð¥¤¥¶¥ê¡¦¥í¥Ã¥¯¤Ë¶¯À©ÎϤϤʤ¯¡¢¶¨Ä´¤·¤ÆÆ°ºî¤¹¤ë¥×¥í¥»¥¹´Ö¤Ç¤Î¤ß
418 Í­¸ú¤Ç¤¢¤ë¡£
419
420 ¶¯À©¥í¥Ã¥¯¤ÏÁ´¤Æ¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¸ú²Ì¤¬¤¢¤ë¡£
421 ¤¢¤ë¥×¥í¥»¥¹¤¬¸ß´¹À­¤Î¤Ê¤¤¶¯À©¥í¥Ã¥¯¤¬Å¬ÍѤµ¤ì¤¿¥Õ¥¡¥¤¥ëÎΰè¤ËÂФ·¤Æ
422 .RB ( read (2)
423 ¤ä
424 .BR write (2)
425 ¤Ë¤è¤ê) ¸ß´¹À­¤Î¤Ê¤¤¥¢¥¯¥»¥¹¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤¿¾ì¹ç¡¢
426 ¥¢¥¯¥»¥¹¤Î·ë²Ì¤Ï
427 ¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤Ç
428 .B O_NONBLOCK
429 ¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤Ë¤è¤ê·è¤Þ¤ë¡£
430 .B O_NONBLOCK
431 ¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢¥í¥Ã¥¯¤¬ºï½ü¤µ¤ì¤ë¤«¡¢
432 ¥í¥Ã¥¯¤¬¥¢¥¯¥»¥¹¤È¸ß´¹À­¤Î¤¢¤ë¥â¡¼¥É¤ËÊÑ´¹¤µ¤ì¤ë¤Þ¤Ç¡¢
433 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÄä»ß (block) ¤µ¤ì¤ë¡£
434 .B O_NONBLOCK
435 ¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥¨¥é¡¼
436 .B EAGAIN
437 ¤Ç¼ºÇÔ¤¹¤ë¡£
438
439 ¶¯À©¥í¥Ã¥¯¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢¥í¥Ã¥¯ÂоݤΥե¡¥¤¥ë¤¬´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à
440 ¤È¡¢¥í¥Ã¥¯ÂоݤΥե¡¥¤¥ë¼«¿È¤ÎξÊý¤Ë¤Ä¤¤¤Æ¡¢¶¯À©¥í¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì
441 ¤Ð¤Ê¤é¤Ê¤¤¡£¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¶¯À©¥í¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢
442 .BR mount (8)
443 ¤Ë "\-o mand" ¥ª¥×¥·¥ç¥ó¤òÅϤ¹¤«¡¢
444 .BR mount (2)
445 ¤Ë
446 .B MS_MANDLOCK
447 ¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤Æ¶¯À©¥í¥Ã¥¯¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢
448 ¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥°¥ë¡¼¥×¼Â¹Ôµö²Ä (group execute permission) ¤ò̵¸ú¤È¤·¡¢
449 ¤«¤Ä set-group-ID µö²Ä¥Ó¥Ã¥È¤òÍ­¸ú¤Ë¤¹¤ë
450 .RB ( chmod (1)
451 ¤È
452 .BR chmod (2)
453 ¤ò»²¾È)¡£
454
455 Linux ¤Î¶¯À©¥í¥Ã¥¯¤Î¼ÂÁõ¤Ï¿®ÍêÀ­¤Ë·ç¤±¤ë¤â¤Î¤Ç¤¢¤ë¡£
456 ²¼µ­¤Î¡Ö¥Ð¥°¡×¤ÎÀá¤ò»²¾È¤Î¤³¤È¡£
457 .SS "¥·¥°¥Ê¥ë¤Î´ÉÍý"
458 .BR F_GETOWN ,
459 .BR F_SETOWN ,
460 .BR F_GETOWN_EX ,
461 .BR F_SETOWN_EX ,
462 .BR F_GETSIG ,
463 .B F_SETSIG
464 ¤Ï¡¢I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë¤ò´ÉÍý¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£
465 .TP
466 .BR F_GETOWN " (\fIvoid\fP)"
467 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿
468 .I fd
469 ¤Î¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥·¥°¥Ê¥ë
470 .B SIGIO
471 ¤ª¤è¤Ó
472 .B SIGURG
473 ¤ò¼õ¤±¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤«¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò
474 (´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ) ÊÖ¤¹¡£
475 ¥×¥í¥»¥¹ID ¤ÏÀµ¤ÎÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£
476 ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ÏÉé¤ÎÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë (²¼µ­¤Î¥Ð¥°¤Î¾Ï¤ò»²¾È)¡£
477 .I arg
478 ¤Ï̵»ë¤µ¤ì¤ë¡£
479 .TP
480 .BR F_SETOWN " (\fIlong\fP)"
481 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿
482 .I fd
483 ¤Î¥¤¥Ù¥ó¥ÈȯÀ¸¤òÃΤ餻¤ë¥·¥°¥Ê¥ë
484 .B SIGIO
485 ¤ä
486 .B SIGURG
487 ¤ò¼õ¤±¤ë¥×¥í¥»¥¹¤Î
488 ¥×¥í¥»¥¹ ID ¤Þ¤¿¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ò
489 .I arg
490 ¤Ç»ØÄꤵ¤ì¤¿ ID ¤ËÀßÄꤹ¤ë¡£
491 ¥×¥í¥»¥¹ID ¤ÏÀµ¤ÎÃͤȤ·¤Æ»ØÄꤷ¡¢
492 ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤ÏÉé¤ÎÃͤȤ·¤Æ»ØÄꤹ¤ë¡£
493 ¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ï½êÍ­¼Ô¤È¤·¤Æ¼«Ê¬¼«¿È¤ò»ØÄꤹ¤ë
494 (¤Ä¤Þ¤ê
495 .I arg
496 ¤Ë
497 .BR getpid (2)
498 ¤ò»ØÄꤹ¤ë)¡£
499
500 .\" glibc.info ¤è¤ê:
501 .BR fcntl ()
502 ¤Î
503 .B F_SETFL
504 ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë
505 .B O_ASYNC
506 ¾õÂ֥ե饰¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ø¤Î
507 Æþ½ÐÎϤ¬²Äǽ¤Ë¤Ê¤ëÅÙ¤Ë
508 .B SIGIO
509 ¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¡£
510 .B F_SETSIG
511 ¤Ï
512 .B SIGIO
513 °Ê³°¤ÎÊ̤Υ·¥°¥Ê¥ë¤ÎÇÛÁ÷¤ò¼õ¤±¤é¤ì¤ë¤è¤¦¤Ë
514 ¤¹¤ë¤Î¤Ë¤â»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
515 µö²Ä (permission) ¤Î¥Á¥§¥Ã¥¯¤Ç¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
516 ¥·¥°¥Ê¥ë¤ÏÌۤäƼΤƤé¤ì¤ë¡£
517
518 .B F_SETOWN
519 ¤Ë¤è¤ê»ØÄꤵ¤ì¤¿½êÍ­¼Ô¤Î¥×¥í¥»¥¹ (¤Þ¤¿¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤Ë
520 ¥·¥°¥Ê¥ë¤òÁ÷¤ëºÝ¤Ë¤Ï¡¢
521 .BR kill (2)
522 ¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤ÈƱ¤¸µö²Ä¤Î¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¡£
523 ¤³¤Î¤È¤­¡¢¥·¥°¥Ê¥ë¤òÁ÷¿®¤¹¤ë¥×¥í¥»¥¹¤Ï
524 .B F_SETOWN
525 ¤ò»È¤Ã¤¿¥×¥í¥»¥¹¤Ç¤¢¤ë
526 (⤷¡¢²¼µ­¤Î¡Ö¥Ð¥°¡×¤Î¾Ï¤ò»²¾È¤Î¤³¤È)¡£
527
528 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¥½¥±¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢
529 .B F_SETOWN
530 ¤ò»ÈÍѤ·¤Æ¡¢¥½¥±¥Ã¥È¤ËÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤¬ÆϤ¤¤¿»þ¤Ë
531 .B SIGURG
532 ¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ëÁê¼ê¤òÁªÂò¤¹¤ë¤³¤È¤â¤Ç¤­¤ë
533 .RB ( SIGURG
534 ¤¬Á÷¤é¤ì¤¿¾ì¹ç¤Ë¤Ï
535 .BR select (2)
536 ¤¬¥½¥±¥Ã¥È¤¬¡ÖÆÃÊ̤ʾõÂ֡פˤ¢¤ë¤ÈÊó¹ð¤¹¤ë¤³¤È¤À¤í¤¦)¡£
537 .\" °Ê²¼¤Îµ­½Ò¤Ï¥´¥ß¤À¤í¤¦¡£
538 .\" ¥«¡¼¥Í¥ë¥½¡¼¥¹¤ò¸«¤ë¤È¤³¤Îµ­½Ò¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤À¤·¡¢
539 .\" ¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤¿¤È¤³¤í¡¢Ã¼Ëö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ç
540 .\" ¤Ê¤¯¤Æ¤â¡¢Ã¼Ëö¤¬À¸À®¤·¤¿ SIGIO ¥·¥°¥Ê¥ë¤ò¼õ¤±¤È¤ë¡£
541 .\" -- MTK, 8 Apr 05
542 .\"
543 .\" ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Ã¼Ëö¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢
544 .\" SIGIO ¥·¥°¥Ê¥ë¤Ï¤½¤ÎüËö¤Î¥Õ¥©¥¢¥°¥é¥ó¥É¡¦¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ø¤ÈÁ÷¤é¤ì¤ë¡£
545
546 ¥Ð¡¼¥¸¥ç¥ó 2.6.11 °ÊÁ°¤Î 2.6.x ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢°Ê²¼¤Ë¼¨¤¹Æ°ºî¤Ç¤¢¤Ã¤¿¡£
547 .RS
548 .IP
549 ¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê (Î㤨¤Ð NPTL) ¤ò
550 »È¤Ã¤ÆÆ°ºî¤·¤Æ¤¤¤ë¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¦¥×¥í¥»¥¹¤Ç
551 .B F_SETSIG
552 ¤Ë 0 °Ê³°¤ÎÃͤò»ØÄꤷ¤¿¾ì¹ç¡¢
553 .B F_SETOWN
554 ¤ËÀµ¤ÎÃͤòÅϤ¹¤È¡¢¤½¤Î°ÕÌ£¤¬°ã¤Ã¤Æ¤¯¤ë:
555 .\" The relevant place in the (2.6) kernel source is the
556 .\" 'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005
557 ¥×¥í¥»¥¹Á´ÂΤò¼¨¤¹¥×¥í¥»¥¹ID ¤Ç¤Ï¤Ê¤¯¡¢¥×¥í¥»¥¹Æâ¤ÎÆÃÄê¤Î
558 ¥¹¥ì¥Ã¥É¤ò¼¨¤¹¥¹¥ì¥Ã¥ÉID ¤È²ò¼á¤µ¤ì¤ë¡£
559 ¤·¤¿¤¬¤Ã¤Æ¡¢
560 .B F_SETSIG
561 ¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢¤­¤Á¤ó¤È·ë²Ì¤ò¼õ¤±¼è¤ë¤Ë¤Ï¡¢
562 .B F_SETOWN
563 ¤ËÅϤ¹Ãͤò
564 .BR getpid (2)
565 ¤Ç¤Ï¤Ê¤¯
566 .BR gettid (2)
567 ¤ÎÊÖ¤êÃͤˤ¹¤ëɬÍפ¬¤¢¤ë¤À¤í¤¦¡£
568 (¸½¾õ¤Î Linux ¥¹¥ì¥Ã¥É¼ÂÁõ¤Ç¤Ï¡¢¥á¥¤¥ó¡¦¥¹¥ì¥Ã¥É¤Î¥¹¥ì¥Ã¥ÉID ¤Ï
569 ¤½¤Î¥¹¥ì¥Ã¥É¤Î¥×¥í¥»¥¹ID ¤ÈƱ¤¸¤Ç¤¢¤ë¡£¤Ä¤Þ¤ê¡¢
570 ¥·¥°¥Ê¥ë¡¦¥¹¥ì¥Ã¥É¤Î¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Î¾ì¹ç
571 .BR gettid (2)
572 ¤È
573 .BR getpid (2)
574 ¤ÏÁ´¤¯Æ±¤¸¤è¤¦¤Ë»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£)
575 ¤¿¤À¤·¡¢Ãí°Õ¤¹¤Ù¤­ÅÀ¤È¤·¤Æ¡¢¤³¤ÎÃÊÍî¤Ç½Ò¤Ù¤¿¤³¤È¤Ï¡¢
576 ¥½¥±¥Ã¥È¤ÎÂÓ°è³°¥Ç¡¼¥¿¤¬ÆϤ¤¤¿¤È¤­¤ËÀ¸À®¤µ¤ì¤ë
577 .B SIGURG
578 ¥·¥°¥Ê¥ë¤Ë¤Ï¤¢¤Æ¤Ï¤Þ¤é¤Ê¤¤¡£
579 ¤³¤Î¥·¥°¥Ê¥ë¤Ï¾ï¤Ë¥×¥í¥»¥¹¤«¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÁ÷¤é¤ì¡¢
580 Á÷¿®Àè¤Ï
581 .B F_SETOWN
582 ¤ËÅϤµ¤ì¤¿Ãͤˤ·¤¿¤¬¤Ã¤Æ·è¤á¤é¤ì¤ë¡£
583 .\" send_sigurg()/send_sigurg_to_task() bypasses
584 .\" kill_fasync()/send_sigio()/send_sigio_to_task()
585 .\" to directly call send_group_sig_info()
586 .\"     -- MTK, Apr 2005 (kernel 2.6.11)
587 .RE
588 .IP
589 ¾åµ­¤ÎÆ°ºî¤Ï¡¢Linux 2.6.12 ¤Ç¿Þ¤é¤º¤âºï½ü¤µ¤ì¡¢
590 ¸µ¤ËÌᤵ¤ì¤Ê¤¤Í½Äê¤Ç¤¢¤ë¡£
591 Linux 2.6.32 °Ê¹ß¤Ç¡¢ÆÃÄê¤Î¥¹¥ì¥Ã¥É°¸¤Ë¥·¥°¥Ê¥ë
592 .B SIGIO
593 ¤È
594 .B SIGURG
595 ¤òÁ÷¤ë¤Ë¤Ï
596 .B F_SETOWN_EX
597 ¤ò»È¤¦¤³¤È¡£
598 .TP
599 .BR F_GETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 °Ê¹ß)"
600 ľÁ°¤Î
601 .B F_SETOWN_EX
602 Áàºî¤ÇÄêµÁ¤µ¤ì¤¿¸½ºß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼ÔÀßÄê
603 ¤òÊÖ¤¹¡£¾ðÊó¤Ï
604 .I arg
605 ¤¬»Ø¤¹¹½Â¤ÂΤ˳ÊǼ¤µ¤ì¤ÆÊÖ¤µ¤ì¤ë¡£¹½Â¤ÂΤϰʲ¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£
606 .nf
607 .in +4n
608
609 struct f_owner_ex {
610     int   type;
611     pid_t pid;
612 };
613
614 .in
615 .fi
616 .I type
617 ¥Õ¥£¡¼¥ë¥É¤Ï¡¢
618 .B F_OWNER_TID ,
619 .B F_OWNER_PID ,
620 .B F_OWNER_PGRP
621 ¤Î¤¤¤º¤ì¤«°ì¤Ä¤ÎÃͤȤʤ롣
622 .I pid
623 ¥Õ¥£¡¼¥ë¥É¤Ï¡¢¥¹¥ì¥Ã¥É ID¡¢¥×¥í¥»¥¹ ID¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤ò
624 ɽ¤¹Àµ¤ÎÀ°¿ô¤Ç¤¢¤ë¡£¾ÜºÙ¤Ï
625 .B F_SETOWN_EX
626 ¤ò»²¾È¡£
627 .TP
628 .BR F_SETOWN_EX " (struct f_owner_ex *) (Linux 2.6.32 °Ê¹ß)"
629 ¤³¤ÎÁàºî¤Ï
630 .B F_SETOWN
631 ¤ÈƱÍͤνèÍý¤ò¹Ô¤¦¡£
632 ¤³¤ÎÁàºî¤ò»È¤¦¤È¡¢I/O ¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤³¤È¤ò¼¨¤¹¥·¥°¥Ê¥ë¤ò¡¢
633 ÆÃÄê¤Î¥¹¥ì¥Ã¥É¡¢¥×¥í¥»¥¹¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ËÁ÷¤ë¤³¤È¤¬¤Ç¤­¤ë
634 ¤è¤¦¤Ë¤Ê¤ë¡£
635 ¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢
636 .I arg
637 ·Ðͳ¤Ç¥·¥°¥Ê¥ë¤ÎÇÛÁ÷Àè¤ò»ØÄꤹ¤ë¡£
638 .I arg
639 ¤Ï
640 .I f_owner_ex
641 ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
642 .I type
643 ¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤ÎÃͤò¼è¤ê¡¢
644 ¤³¤ÎÃͤˤè¤ê
645 .I pid
646 ¤¬¤É¤Î¤è¤¦¤Ë²ò¼á¤µ¤ì¤ë¤«¤¬µ¬Äꤵ¤ì¤ë¡£
647 .RS
648 .TP
649 .BR F_OWNER_TID
650 ¥¹¥ì¥Ã¥É ID ¤¬
651 .I pid
652 ¤Ç»ØÄꤵ¤ì¤¿ÃͤΥ¹¥ì¥Ã¥É¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë
653 (¥¹¥ì¥Ã¥É ID ¤Ï
654 .BR clone (2)
655 ¤ä
656 .BR gettid (2)
657 ¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤ëÃͤǤ¢¤ë)¡£
658 .TP
659 .BR F_OWNER_PID
660 ID ¤¬
661 .I pid
662 ¤Ç»ØÄꤵ¤ì¤¿ÃÍ¤Î¥×¥í¥»¥¹¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£
663 .TP
664 .BR F_OWNER_PGRP
665 ID ¤¬
666 .I pid
667 ¤Ç»ØÄꤵ¤ì¤¿ÃÍ¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤½¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë¡£
668 .RB ( F_SETOWN
669 ¤È°Û¤Ê¤ê¡¢¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤Ë¤ÏÀµ¤ÎÃͤò»ØÄꤹ¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£)
670 .RE
671 .TP
672 .BR F_GETSIG " (\fIvoid\fP)"
673 ÆþÎϤä½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤ËÁ÷¤ë¥·¥°¥Ê¥ë¤ò
674 (´Ø¿ô¤Î·ë²Ì¤È¤·¤Æ) ÊÖ¤¹¡£
675 ÃÍ¥¼¥í¤Ï
676 .B SIGIO
677 ¤òÁ÷¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
678 .RB ( SIGIO
679 ¤ò´Þ¤à) Â¾¤ÎÃͤϤ¤¤º¤ì¤â¡¢
680 .B SIGIO
681 ¤ÎÂå¤ï¤ê¤ËÁ÷¤ë¥·¥°¥Ê¥ëÈÖ¹æ¤òɽ¤¹¡£
682 ¸å¼Ô¤Î¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò
683 .B SA_SIGINFO
684 ¥Õ¥é¥°ÉÕ¤­¤ÇÀßÄꤹ¤ì¤Ð¡¢¥Ï¥ó¥É¥é¤ÇÄɲäξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
685 .I arg
686 ¤Ï̵»ë¤µ¤ì¤ë¡£
687 .TP
688 .BR F_SETSIG " (\fIlong\fP)"
689 ÆþÎϤä½ÐÎϤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤ËÁ÷¤ë¥·¥°¥Ê¥ë¤ò
690 .I arg
691 ¤Ë»ØÄꤵ¤ì¤¿ÃͤËÀßÄꤹ¤ë¡£
692 ÃÍ¥¼¥í¤Ï
693 .B SIGIO
694 ¤òÁ÷¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
695 .RB ( SIGIO
696 ¤ò´Þ¤à) Â¾¤ÎÃͤϤ¤¤º¤ì¤â¡¢
697 .B SIGIO
698 ¤ÎÂå¤ï¤ê¤ËÁ÷¤ë¥·¥°¥Ê¥ëÈÖ¹æ¤òɽ¤¹¡£
699 ¸å¼Ô¤Î¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò
700 .B SA_SIGINFO
701 ¥Õ¥é¥°ÉÕ¤­¤ÇÀßÄꤹ¤ì¤Ð¡¢
702 ¥Ï¥ó¥É¥é¤ÇÄɲäξðÊó¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
703 .\"
704 .\" The following was true only up until 2.6.11:
705 .\"
706 .\" ¤Þ¤¿¡¢
707 .\" .B F_SETSIG
708 .\" ¤Ë 0 °Ê³°¤ÎÃͤòÅϤ¹¤È¡¢¥·¥°¥Ê¥ë¤Î¼õ¿®¼Ô¤ò¥×¥í¥»¥¹Á´ÂΤ«¤é
709 .\" ¥×¥í¥»¥¹Æâ¤ÎÆÃÄê¤Î¥¹¥ì¥Ã¥É¤ËÊѹ¹¤µ¤ì¤ë¡£¾ÜºÙ¤Ï
710 .\" .B F_SETOWN
711 .\" ¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£
712
713 .B F_SETSIG
714 ¤Ë¥¼¥í°Ê³°¤ÎÃͤòÀßÄꤷ¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë
715 .B SA_SIGINFO
716 ¥Õ¥é¥°¤òÀßÄꤹ¤ë¤È¡¢
717 .RB ( sigaction (2)
718 ¤ò»²¾È) I/O ¥¤¥Ù¥ó¥È¤Ë´Ø¤¹¤ëÄɲäξðÊó¤¬
719 .I siginfo_t
720 ¹½Â¤ÂΤǥ·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ØÅϤµ¤ì¤ë¡£
721 .I si_code
722 ¥Õ¥£¡¼¥ë¥É¤¬¼¨¤¹¥·¥°¥Ê¥ë¤Î¸¶°ø¤¬
723 .B SI_SIGIO
724 ¤Ç¤¢¤ë¾ì¹ç¡¢
725 .I si_fd
726 ¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥¤¥Ù¥ó¥È¤ËÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë¡£
727 ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬ÍøÍѲÄǽ¤«¤ò¼¨¤¹¾ðÊó¤Ï
728 ¤Ê¤¤¤Î¤Ç¡¢¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç I/O ¤¬²Äǽ¤«¤òȽÃǤ¹¤ë¤¿¤á¤Ë¤Ï
729 Ä̾ï¤Îµ¡¹½
730 .RB ( select (2),
731 .BR poll (2),
732 .B O_NONBLOCK
733 ¤òÀßÄꤷ¤¿
734 .BR read (2)
735 ¤Ê¤É) ¤ò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
736
737 ¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë (Ãͤ¬
738 .B SIGRTMIN
739 °Ê¾å) ¤òÁªÂò¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢
740 Ʊ¤¸¥·¥°¥Ê¥ëÈÖ¹æ¤ò»ý¤ÄÊ£¿ô¤Î I/O ¥¤¥Ù¥ó¥È¤¬¥­¥å¡¼¤ËÆþ¤ë¤³¤È¤¬¤¢¤ë
741 (¥­¥å¡¼¤ËÆþ¤ì¤ë¤«¤É¤¦¤«¤ÏÍøÍѲÄǽ¤Ê¥á¥â¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë)¡£
742 ¾åµ­¤ÈƱÍÍ¡¢ 
743 .B SA_SIGINFO
744 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¤¿¤á¤ÎÄɲäξðÊó¤¬ÆÀ¤é¤ì¤ë¡£
745
746 .\" See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05
747 °Ê²¼¤ÎÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£
748 Linux ¤Ç¤Ï°ì¤Ä¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¥­¥å¡¼¤ËÆþ¤ì¤é¤ì¤ë¥ê¥¢¥ë¥¿¥¤¥à
749 ¥·¥°¥Ê¥ë¤Î¿ô¤Ë¾å¸Â¤¬Àߤ±¤é¤ì¤Æ¤ª¤ê
750 .RB ( getrlimit (2)
751 ¤È
752 .BR signal (7)
753 ¤ò»²¾È)¡¢¤³¤Î¾å¸Â¤Ë㤹¤ë¤È¥«¡¼¥Í¥ë¤Ï
754 .B SIGIO
755 ¥·¥°¥Ê¥ë¤òÇÛÁ÷¤¹¤ë¡£¤³¤Î
756 .B SIGIO
757 ¥·¥°¥Ê¥ë¤Ï¡¢»ØÄꤵ¤ì¤¿¥¹¥ì¥Ã¥É¤Ç¤Ï¤Ê¤¯¥×¥í¥»¥¹Á´ÂΤËÁ÷¤é¤ì¤ë¡£
758 .PP
759 ¤³¤ì¤é¤Îµ¡¹½¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ç
760 .BR select (2)
761 ¤ä
762 .BR poll (2)
763 ¤ò»ÈÍѤ»¤º¤Ë´°Á´¤ÊÈóƱ´ü I/O ¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
764 .PP
765 .BR O_ASYNC ,
766 .BR F_GETOWN ,
767 .B F_SETOWN
768 ¤Î»ÈÍѤϠBSD ¤È Linux ¤ËÆÃÍ­¤Ç¤¢¤ë¡£
769 .BR F_GETOWN_EX ,
770 .BR F_SETOWN_EX ,
771 .BR F_GETSIG ,
772 .B F_SETSIG
773 ¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£POSIX ¤Ë¤Ï¡¢Æ±ÍͤΤ³¤È¤ò¹Ô¤¦¤¿¤á¤Ë¡¢ÈóƱ´ü I/O ¤È
774 .I aio_sigevent
775 ¹½Â¤ÂΤ¬¤¢¤ë¡£Linux ¤Ç¤Ï¡¢GNU C ¥é¥¤¥Ö¥é¥ê (Glibc) ¤Î°ìÉô¤È¤·¤Æ
776 ¤³¤ì¤é¤âÍøÍѲÄǽ¤Ç¤¢¤ë¡£
777 .SS "¥ê¡¼¥¹ (leases)"
778 (Linix 2.4 °Ê¹ß¤ÇÍøÍѲÄǽ)
779 .B F_SETLEASE
780 ¤Ï¡¢
781 .I fd
782 ¤¬»²¾È¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤Æ¿·¤·¤¤¥ê¡¼¥¹¤òÀßÄꤹ¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
783 .B F_GETLEASE
784 ¤Ï¡¢
785 .I fd
786 ¤¬»²¾È¤¹¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë
787 ¸½ºß¤Î¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£
788 ¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹¤Ë¤è¤ê¡¢
789 ¤¢¤ë¥×¥í¥»¥¹ ("lease breaker") ¤¬¤½¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬»²¾È
790 ¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ
791 .BR open (2)
792 ¤ä
793 .BR truncate (2)
794 ¤ò¹Ô¤ª¤¦¤È¤·¤¿ºÝ¤Ë¡¢¥ê¡¼¥¹¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹ ("lease holder") ¤Ø
795 (¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤ë) ÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤È¤¤¤¦µ¡¹½¤¬Ä󶡤µ¤ì¤ë¡£
796 .TP
797 .BR F_SETLEASE " (\fIlong\fP)"
798 .I arg
799 ¤ÎÆâÍƤ˴𤤤ƥե¡¥¤¥ë¤Î¥ê¡¼¥¹¤ÎÀßÄê¡¢ºï½ü¤ò¹Ô¤¦¡£À°¿ô
800 .I arg
801 ¤Ë¤Ï°Ê²¼¤ÎÃͤ¬»ØÄê¤Ç¤­¤ë:
802
803 .RS
804 .TP
805 .B F_RDLCK
806 Æɤ߽Ф·¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢
807 ¤½¤Î¥Õ¥¡¥¤¥ë¤¬½ñ¤­¹þ¤ßÍѤ˥ª¡¼¥×¥ó¤µ¤ì¤¿¤ê¡¢¥Õ¥¡¥¤¥ë¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ë¡¢
808 ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£
809 .\" °Ê²¼¤ÎÆâÍƤϥ«¡¼¥Í¥ë 2.6.10 ¤Ç¼ÂÁõ¤µ¤ì¤¿¡£
810 .\" ¤è¤ê¾Ü¤·¤¤¾ðÊó¤Ï man-pages-2.09 ¤Î Changelog ¤ò»²¾È¡£
811 Æɤ߽Ф·¥ê¡¼¥¹¤òÀßÄê¤Ç¤­¤ë¤Î¤Ï¡¢Æɤ߽Ф·ÀìÍѤǥª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë
812 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ¤Î¤ß¤Ç¤¢¤ë¡£
813 .TP
814 .B F_WRLCK
815 ½ñ¤­¹þ¤ß¥ê¡¼¥¹¤ò¼èÆÀ¤¹¤ë¡£¤³¤ì¤Ë¤è¤ê¡¢
816 (Æɤ߽Ф·ÍѤ«½ñ¤­¹þ¤ßÍѤˤ«¤«¤ï¤é¤º) ¤½¤Î¥Õ¥¡¥¤¥ë¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¤ê¡¢
817 ¥Õ¥¡¥¤¥ë¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¾ì¹ç¤Ë¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËÄÌÃΤ¬¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£
818 ½ñ¤­¹þ¤ß¥ê¡¼¥¹¤Ï¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬
819 ¾¤Ë¤Ê¤¤¾ì¹ç¤Ë¤Î¤ßÀßÄê¤Ç¤­¤ë¡£
820 .TP
821 .B F_UNLCK
822 ¤½¤Î¥Õ¥¡¥¤¥ë¤«¤é¥ê¡¼¥¹¤òºï½ü¤¹¤ë¡£
823 .RE
824 .P
825 ¥ê¡¼¥¹¤Ï¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò¤ËÂФ·¤Æ´ØÏ¢ÉÕ¤±¤é¤ì¤ë
826 .RB ( open (2)
827 »²¾È)¡£
828 ¤Ä¤Þ¤ê¡¢
829 .RB ( fork (2)
830 ¤ä
831 .BR dup (2)
832 ¤Ê¤É¤Ë¤è¤êºîÀ®¤µ¤ì¤¿) ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ£À½¤ÏƱ¤¸¥ê¡¼¥¹¤ò»²¾È¤·¡¢
833 Ê£À½¤â´Þ¤á¤¿¤É¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤Ã¤Æ¤â¤³¤Î¥ê¡¼¥¹¤òÊѹ¹¤·¤¿¤ê
834 ²òÊü¤·¤¿¤ê¤Ç¤­¤ë¡£
835 ¤Þ¤¿¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¤¤¤º¤ì¤«¤ËÂФ·¤Æ
836 .B F_UNLCK
837 Áàºî¤¬ÌÀ¼¨Åª¤Ë¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤ä¡¢¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬
838 ÊĤ¸¤é¤ì¤¿¾ì¹ç¤Ë¤â¡¢¥ê¡¼¥¹¤Ï²òÊü¤µ¤ì¤ë¡£
839 .P
840 ¥ê¡¼¥¹¤Î¼èÆÀ¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë (regular file) ¤ËÂФ·¤Æ¤Î¤ß²Äǽ¤Ç¤¢¤ë¡£
841 ÈóÆø¢¥×¥í¥»¥¹¤¬¥ê¡¼¥¹¤ò¼èÆÀ¤Ç¤­¤ë¤Î¤Ï¡¢UID (½êÍ­¼Ô) ¤¬¥×¥í¥»¥¹¤Î
842 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à UID ¤È°ìÃפ¹¤ë¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¤À¤±¤Ç¤¢¤ë¡£
843 .B CAP_LEASE
844 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ä¥×¥í¥»¥¹¤ÏǤ°Õ¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¡¼¥¹¤ò¼èÆÀ¤Ç¤­¤ë¡£
845 .TP
846 .BR F_GETLEASE " (\fIvoid\fP)"
847 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿
848 .I fd
849 ¤ËÂФ·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ë¥ê¡¼¥¹¤Î¼ïÊ̤ò¼èÆÀ¤¹¤ë¡£
850 .BR F_RDLCK ", " F_WRLCK ", " F_UNLCK
851 ¤Î¤¤¤º¤ì¤«¤¬ÊÖ¤µ¤ì¤ë¡£
852 .BR F_RDLCK ", " F_WRLCK
853 ¤Ï¤½¤ì¤¾¤ì¡¢Æɤ߽Ф·¥ê¡¼¥¹¡¢½ñ¤­¹þ¤ß¥ê¡¼¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤·¡¢
854 .B F_UNLCK
855 ¤Ï¥ê¡¼¥¹¤¬²¿¤âÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò¼¨¤¹¡£
856 .I arg
857 ¤Ï̵»ë¤µ¤ì¤ë¡£
858 .PP
859 ¤¢¤ë¥×¥í¥»¥¹ ("lease folder") ¤¬
860 .B F_SETLEASE
861 ¤ÇÀßÄꤵ¤ì¤¿¥ê¡¼¥¹¤ÈÌ·½â¤¹¤ë¤è¤¦¤Ê
862 .BR open (2)
863 ¤ä
864 .BR truncate (2)
865 ¤ò¼Â¹Ô¤·¤¿¾ì¹ç¡¢
866 ¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÄä»ß¤µ¤ì¡¢
867 ¥«¡¼¥Í¥ë¤Ï lease holder ¤Ë¥·¥°¥Ê¥ë (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï
868 .BR SIGIO )
869 ¤òÁ÷¤Ã¤ÆÄÌÃΤò¹Ô¤¦¡£
870 lease holder ¤Ï¤³¤Î¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤¿¤È¤­¤Ë¤Ï¤­¤Á¤ó¤ÈÂбþ¤¹¤Ù¤­¤Ç¤¢¤ë¡£
871 ¶ñÂÎŪ¤Ë¤Ï¡¢ÊÌ¤Î¥×¥í¥»¥¹¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î½àÈ÷¤È¤·¤Æ
872 ɬÍפʸåÊÒÉÕ¤± (Î㤨¤Ð¡¢¥­¥ã¥Ã¥·¥å¤µ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Î¥Õ¥é¥Ã¥·¥å) ¤ò
873 ¤¹¤Ù¤Æ¹Ô¤Ã¤Æ¤«¤é¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤Î¥ê¡¼¥¹¤Îºï½ü¤Þ¤¿¤Ï³Ê²¼¤²¤ò¹Ô¤¦¡£
874 ¥ê¡¼¥¹¤òºï½ü¤ò¤¹¤ë¤Ë¤Ï¡¢
875 .I arg
876 ¤Ë
877 .B F_UNLCK
878 ¤ò»ØÄꤷ¤Æ
879 .B F_SETLEASE
880 ¤ò¼Â¹Ô¤¹¤ë¡£
881 lease holder ¤¬¥Õ¥¡¥¤¥ë¤Ë½ñ¤­¹þ¤ß¥ê¡¼¥¹¤òÊÝ»ý¤·¤Æ¤¤¤Æ¡¢
882 lease breaker ¤¬Æɤ߽Ф·ÍѤˤ½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¾ì¹ç¡¢
883 lease holder ¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¥ê¡¼¥¹¤òÆɤ߽Ф·¥ê¡¼¥¹¤Ë³Ê²¼¤²¤¹¤ì¤Ð
884 ½½Ê¬¤Ç¤¢¤ë¡£¤³¤ì¤ò¤¹¤ë¤Ë¤Ï¡¢
885 .I arg
886 ¤Ë
887 .B F_RDLCK
888 ¤ò»ØÄꤷ¤Æ
889 .B F_SETLEASE
890 ¤ò¼Â¹Ô¤¹¤ë¡£
891
892 lease holder ¤¬
893 .I /proc/sys/fs/lease-break-time
894 ¤Ç»ØÄꤵ¤ì¤¿Éÿô°ÊÆâ¤Ë¥ê¡¼¥¹¤Î³Ê²¼¤²¤«ºï½ü¤ò¹Ô¤¨¤Ê¤«¤Ã¤¿¾ì¹ç¡¢
895 ¥«¡¼¥Í¥ë¤Ï¶¯À©Åª¤Ë¤½¤Î lease holder ¤Î¥ê¡¼¥¹¤òºï½ü¤â¤·¤¯¤Ï³Ê²¼¤²¤ò¹Ô¤¦¡£
896
897 °ìÅ٥꡼¥¹¤Îºï½ü¤«³Ê²¼¤²¤¬¼«È¯Åª¤â¤·¤¯¤Ï¶¯À©Åª¤Ë¹Ô¤ï¤ì¤ë¤È¡¢
898 lease breaker ¤¬¤Þ¤À¥·¥¹¥Æ¥à¥³¡¼¥ë¤òºÆ³«¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
899 ¥«¡¼¥Í¥ë¤¬ lease breaker ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î³¹Ô¤òµö²Ä¤¹¤ë¡£
900
901 lease breaker ¤¬¼Â¹Ô¤·¤¿
902 .BR open (2)
903 ¤ä
904 .BR truncate (2)
905 ¤¬Ää»ßÃæ¤Ë¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¾ì¹ç¡¢
906 ¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
907 .B EINTR
908 ¥¨¥é¡¼¤Ç¼ºÇÔ¤¹¤ë¤¬¡¢¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï
909 ¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£
910 .BR open (2)
911 ¤ä
912 .BR truncate (2)
913 ¤¬Ää»ßÃæ¤Ë lease breaker ¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê kill ¤µ¤ì¤¿¾ì¹ç¡¢
914 ¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£
915 lease breaker ¤¬
916 .BR open (2)
917 ¤ò¸Æ¤ÖºÝ¤Ë
918 .B O_NONBLOCK
919 ¥Õ¥é¥°¤ò»ØÄꤷ¤¿¾ì¹ç¡¢¤½¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
920 .B EWOULDBLOCK
921 ¥¨¥é¡¼¤Çľ¤Á¤Ë¼ºÇÔ¤¹¤ë¤¬¡¢¾å¤Ç½Ò¤Ù¤¿Â¾¤Î½èÍý¤Ï¤½¤Î¤Þ¤Þ¹Ô¤ï¤ì¤ë¡£
922
923 lease holder ¤Ø¤ÎÄÌÃΤ˻Ȥï¤ì¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥·¥°¥Ê¥ë¤Ï
924 .B SIGIO
925 ¤À¤¬¡¢
926 .BR fcntl ()
927 ¤Î
928 .B F_SETSIG
929 ¥³¥Þ¥ó¥É¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
930 .B F_SETSIG
931 ¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì
932 .RB ( SIGIO
933 ¤ò»ØÄꤵ¤ì¤¿¾ì¹ç¤â´Þ¤à)¡¢
934 .B SA_SIGINFO
935 ¥Õ¥é¥°ÉÕ¤­¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢
936 ¥Ï¥ó¥É¥é¤ÎÂèÆó°ú¤­¿ô¤È¤·¤Æ
937 .I siginfo_t
938 ¹½Â¤ÂΤ¬ÅϤµ¤ì¡¢¤³¤Î°ú¤­¿ô¤Î
939 .I si_fd
940 ¥Õ¥£¡¼¥ë¥É¤Ë¤ÏÊÌ¤Î¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤·¤¿¥ê¡¼¥¹ÀßÄêºÑ¤ß¥Õ¥¡¥¤¥ë¤Î
941 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë
942 (¤³¤Îµ¡Ç½¤ÏÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¥ê¡¼¥¹¤òÀßÄꤹ¤ë¾ì¹ç¤ËÍ­ÍѤǤ¢¤ë)¡£
943 .SS "¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹¤ÎÄÌÃΠ(dnotify)"
944 .TP
945 .BR F_NOTIFY " (\fIlong\fP)"
946 (Linux 2.4 °Ê¹ß)
947 .I fd
948 ¤Ç»²¾È¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤«¡¢¤½¤ÎÃæ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë
949 ÄÌÃΤò¹Ô¤¦¡£¤É¤Î¥¤¥Ù¥ó¥È¤òÄÌÃΤ¹¤ë¤«¤Ï
950 .I arg
951 ¤Ç»ØÄꤹ¤ë¡£
952 .I arg
953 ¤Ï¥Ó¥Ã¥È¥Þ¥¹¥¯¤Ç¡¢°Ê²¼¤Î¥Ó¥Ã¥È¤Î 0¸Ä°Ê¾å¤ÎÏÀÍýϤò¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£
954 .RS
955 .sp
956 .PD 0
957 .TP 12
958 .B DN_ACCESS
959 ¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤¬¤¢¤Ã¤¿ (read, pread, readv)
960 .TP
961 .B DN_MODIFY
962 ¥Õ¥¡¥¤¥ë¤ÎÆâÍƤ¬Êѹ¹¤µ¤ì¤¿ (write, pwrite, writev, truncate, ftruncate).
963 .TP
964 .B DN_CREATE
965 ¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤¿ (open, creat, mknod, mkdir, link, symlink, rename).
966 .TP
967 .B DN_DELETE
968 ¥Õ¥¡¥¤¥ë¤¬ºï½ü (unlink) ¤µ¤ì¤¿ (unlink, Ê̤Υǥ£¥ì¥¯¥È¥ê¤Ø¤Î rename, rmdir)
969 .TP
970 .B DN_RENAME
971 ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ç¤Î¥Õ¥¡¥¤¥ë̾¤ÎÊѹ¹¤¬¤¢¤Ã¤¿ (rename)
972 .TP
973 .B DN_ATTRIB
974 ¥Õ¥¡¥¤¥ë°À­¤¬Êѹ¹¤µ¤ì¤¿ (chown, chmod, utime[s])
975 .PD
976 .RE
977 .IP
978 (¾åµ­¤ÎÄêµÁ¤òÍøÍѤ¹¤ë¤Ë¤Ï
979 .B _GNU_SOURCE
980 µ¡Ç½¸¡ºº¥Þ¥¯¥í¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£)
981
982 ¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹ÄÌÃΤÏÄ̾ï¡Ö°ì²ó¸Â¤ê (one-shot)¡×¤Ç¤¢¤ê¡¢
983 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Ç¤½¤Î¸å¤µ¤é¤ËÄÌÃΤò¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï
984 ºÆÅÐÏ¿¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
985 .I arg
986 ¤Ë
987 .B DN_MULTISHOT
988 ¤¬´Þ¤Þ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¡¢
989 Êѹ¹ÄÌÃΤÏÌÀ¼¨Åª¤Ë²ò½ü¤µ¤ì¤ë¤Þ¤ÇÍ­¸ú¾õÂÖ¤¬·Ñ³¤¹¤ë¡£
990
991 .\" °Ê²¼¤Ï API ¤ÎÀ߷פ¬¤Þ¤º¤¤¤È»×¤¦¤Î¤À¤¬...
992 .B F_NOTIFY
993 Í×µá¤ÏÀÑ»»¤µ¤ì¤Æ¤¤¤¯¡£¤Ä¤Þ¤ê¡¢
994 .I arg
995 ¤Ç»ØÄꤵ¤ì¤¿¥¤¥Ù¥ó¥È¤¬¤¹¤Ç¤Ë¥â¥Ë¥¿¤µ¤ì¤Æ¤¤¤ë
996 ¥¤¥Ù¥ó¥È½¸¹ç¤Ë²Ã»»¤µ¤ì¤ë·Á¤Ë¤Ê¤ë¡£
997 ¤¹¤Ù¤Æ¤Î¥¤¥Ù¥ó¥È¤ÎÄÌÃΤò̵¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢
998 .I arg
999 ¤Ë 0 ¤ò»ØÄꤷ¤Æ
1000 .B F_NOTIFY
1001 ¤ò¸Æ¤Ó½Ð¤¹É¬Íפ¬¤¢¤ë¡£
1002
1003 ÄÌÃΤϥ·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ç¹Ô¤ï¤ì¤ë¡£
1004 ¥Ç¥Õ¥©¥ë¥È¤Î¥·¥°¥Ê¥ë¤Ï
1005 .B SIGIO
1006 ¤À¤¬¡¢
1007 .BR fcntl ()
1008 ¤Î
1009 .B F_SETSIG
1010 ¥³¥Þ¥ó¥É¤ÇÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
1011 ¸å¼Ô¤Î¾ì¹ç¤Ë¤Ï¡¢
1012 .RB ( SA_SIGINFO
1013 ¥Õ¥é¥°ÉÕ¤­¤Ç¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï)
1014 ¥Ï¥ó¥É¥é¤ÎÂèÆó°ú¤­¿ô¤È¤·¤Æ
1015 .I siginfo_t
1016 ¹½Â¤ÂΤ¬ÅϤµ¤ì¡¢¤³¤Î¹½Â¤ÂΤÎ
1017 .I si_fd
1018 ¥Õ¥£¡¼¥ë¥É¤Ë¤ÏÄÌÃΤιԤï¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æþ¤Ã¤Æ¤¤¤ë
1019 (¤³¤Îµ¡Ç½¤ÏÊ£¿ô¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤ÆÄÌÃΤòÀßÄꤹ¤ë¾ì¹ç¤ËÍ­ÍѤǤ¢¤ë)¡£
1020
1021 ÆäË
1022 .B DN_MULTISHOT
1023 ¤ò»È¤¦¾ì¹ç¤Ï¡¢ÄÌÃΤˤϥꥢ¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»È¤¦¤Ù¤­¤Ç¤¢¤ë¡£
1024 ¤½¤ì¤Ï¡¢¥ê¥¢¥ë¥¿¥¤¥à¥·¥°¥Ê¥ë¤ò»È¤¦¤³¤È¤Ç¡¢Ê£¿ô¤ÎÄÌÃΤò¥­¥å¡¼¤ËÆþ¤ì¤ë
1025 ¤³¤È¤¬¤Ç¤­¤ë¤«¤é¤Ç¤¢¤ë¡£
1026
1027 .B Ãí°Õ:
1028 ¿·¤·¤¯¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò½ñ¤¯ºÝ¤Ë¤Ï¡¢(¥«¡¼¥Í¥ë 2.6.13 °Ê¹ß¤ÇÍøÍѲÄǽ¤È¤Ê¤Ã¤¿)
1029 .I inotify
1030 ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ÈÍѤ¹¤Ù¤­¤Ç¤¢¤ë¡£
1031 .I inotify
1032 ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥¤¥Ù¥ó¥È¤ÎÄÌÃΤò¼èÆÀ¤¹¤ë¤¿¤á¤Î
1033 ¤º¤Ã¤ÈÍ¥¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¢¤ë¡£
1034 .BR inotify (7)
1035 ¤ò»²¾È¡£
1036 .SH ÊÖ¤êÃÍ
1037 À®¸ù¤·¤¿¾ì¹ç¤ÎÊÖ¤êÃͤÏÁàºî¤Î¼ïÎà¤Ë¤è¤ê°ã¤¦:
1038 .TP 0.9i
1039 .B F_DUPFD
1040 ¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
1041 .TP
1042 .B F_GETFD
1043 ¥Õ¥é¥°¤ÎÃͤòÊÖ¤¹¡£
1044 .TP
1045 .B F_GETFL
1046 ¥Õ¥é¥°¤ÎÃͤòÊÖ¤¹¡£
1047 .TP
1048 .B F_GETLEASE
1049 ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤ÆÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¥ê¡¼¥¹¤Î¼ïÊ̤òÊÖ¤¹¡£
1050 .TP
1051 .B F_GETOWN
1052 ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô¤òÊÖ¤¹¡£
1053 .TP
1054 .B F_GETSIG
1055 Æɤ߹þ¤ß¤ä½ñ¤­½Ð¤·¤¬²Äǽ¤Ë¤Ê¤Ã¤¿»þ¤ËÁ÷¤é¤ì¤ë¥·¥°¥Ê¥ë¤ÎÃÍ¡¢¤â¤·¤¯¤Ï
1056 ÅÁÅýŪ¤Ê
1057 .B SIGIO
1058 Æ°ºî¤Î¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£
1059 .TP
1060 ¾¤ÎÁ´¤Æ¤Î¥³¥Þ¥ó¥É¤Ï 0 ¤òÊÖ¤¹¡£
1061 .PP
1062 ¥¨¥é¡¼¤Î»þ¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢
1063 .I errno
1064 ¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£
1065 .SH ¥¨¥é¡¼
1066 .TP
1067 .BR EACCES " ¤« " EAGAIN
1068 ¾¤Î¥×¥í¥»¥¹¤¬ÊÝ»ý¤·¤Æ¤¤¤ë¥í¥Ã¥¯¤Ë¤è¤Ã¤ÆÁàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£
1069 .TP
1070 .B EAGAIN
1071 ¤½¤Î¥Õ¥¡¥¤¥ë¤Ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ¥á¥â¥ê¡¦¥Þ¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
1072 Áàºî¤¬¶Ø»ß¤µ¤ì¤Æ¤¤¤ë¡£
1073 .TP
1074 .B EBADF
1075 .I fd
1076 ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£
1077 ¤¢¤ë¤¤¤Ï¥³¥Þ¥ó¥É¤¬
1078 .B F_SETLK
1079 ¤Þ¤¿¤Ï
1080 .B F_SETLKW
1081 ¤À¤Ã¤¿¤¬¡¢ÂоݤΥե¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î¥ª¡¼¥×¥ó¥â¡¼¥É¤¬
1082 ɬÍפȤʤë¥í¥Ã¥¯¤Î·¿¤Ë¥Þ¥Ã¥Á¤·¤Æ¤¤¤Ê¤¤¡£
1083 .TP
1084 .B EDEADLK
1085 »ØÄꤵ¤ì¤¿
1086 .B F_SETLKW
1087 ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¾ì¹ç¤Ë¤Ï¥Ç¥Ã¥É¥í¥Ã¥¯¤Ë¤Ê¤ë¤³¤È¤¬¸¡½Ð¤µ¤ì¤¿¡£
1088 .TP
1089 .B EFAULT
1090 .I lock
1091 ¤¬ÍøÍѲÄǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°Éô¤Ë¤¢¤ë¡£
1092 .TP
1093 .B EINTR
1094 .B F_SETLKW
1095 ¥³¥Þ¥ó¥É¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê³ä¤ê¹þ¤Þ¤ì¤¿
1096 .RB ( signal (7)
1097 »²¾È)¡£
1098 .BR F_GETLK " ¤È " F_SETLK
1099 ¤Î¾ì¹ç¡¢¥í¥Ã¥¯¤ò³Îǧ¤·¤¿¤ê¼èÆÀ¤·¤¿¤ê¤¹¤ëÁ°¤Ë¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿¡£
1100 ¤³¤ì¤Ï¤¿¤¤¤Æ¤¤¥ê¥â¡¼¥È¤Î¥Õ¥¡¥¤¥ë¤ò¥í¥Ã¥¯¤¹¤ë¾ì¹ç
1101 (Î㤨¤Ð NFS ¾å¤Ç¥í¥Ã¥¯¤¹¤ë¾ì¹ç) ¤Ëµ¯¤³¤ë¡£
1102 ¤·¤«¤·¥í¡¼¥«¥ë¤Ç¤âµ¯¤³¤ë¾ì¹ç¤¬¤¢¤ë¡£
1103 .TP
1104 .B EINVAL
1105 .BR F_DUPFD ¤Ç¡¢
1106 .I arg
1107 ¤¬É餫¡¢¤â¤·¤¯¤Ïµö¤µ¤ì¤ëºÇÂçÃͤè¤ê¤âÂ礭¤¤¡£
1108 .B F_SETSIG
1109 ¤Î¾ì¹ç¡¢
1110 .I arg
1111 ¤¬ÍøÍѲÄǽ¤Ê¥·¥°¥Ê¥ëÈÖ¹æ¤Ç¤Ï¤Ê¤¤¡£
1112 .TP
1113 .B EMFILE
1114 .BR F_DUPFD ¤Ç¡¢
1115 ¥×¥í¥»¥¹¤¬¤¹¤Ç¤ËºÇÂç¿ô¤Þ¤Ç¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¡£
1116 .TP
1117 .B ENOLCK
1118 ¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥í¥Ã¥¯¤Î¿ô¤¬Â¿²á¤®¤Æ¡¢¥í¥Ã¥¯¡¦¥Æ¡¼¥Ö¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Ç¤¢¤ë¡£
1119 ¤Þ¤¿¤Ï remote locking protocol (Î㤨¤Ð NFS ¾å¤Î¥í¥Ã¥¯) ¤¬¼ºÇÔ¤·¤¿¡£
1120 .TP
1121 .B EPERM
1122 ÄɲÃÀìÍÑ°À­¤¬ÀßÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î
1123 .B O_APPEND
1124 ¥Õ¥é¥°¤ò¥¯¥ê¥¢¤·¤è¤¦¤È»î¤ß¤¿¡£
1125 .SH ½àµò
1126 SVr4, 4.3BSD, POSIX.1-2001.
1127 POSIX.1-2001 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ëÁàºî¤Ï¡¢
1128 .BR F_DUPFD ,
1129 .BR F_GETFD ,
1130 .BR F_SETFD ,
1131 .BR F_GETFL ,
1132 .BR F_SETFL ,
1133 .BR F_GETLK ,
1134 .BR F_SETLK ,
1135 .BR F_SETLKW ,
1136 .BR F_GETOWN ,
1137 .B F_SETOWN
1138 ¤À¤±¤Ç¤¢¤ë¡£
1139
1140 .B F_DUPFD_CLOEXEC
1141 ¤Ï POSIX.1-2008 ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
1142
1143 .BR F_GETOWN_EX ,
1144 .BR F_SETOWN_EX ,
1145 .BR F_GETSIG ,
1146 .BR F_SETSIG ,
1147 .BR F_NOTIFY ,
1148 .BR F_GETLEASE ,
1149 .B F_SETLEASE
1150 ¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë (¤³¤ì¤é¤ÎÄêµÁ¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï
1151 .B _GNU_SOURCE
1152 ¥Þ¥¯¥í¤òÄêµÁ¤¹¤ë¤³¤È)¡£
1153 .\" .PP
1154 .\" SVr4 ¤Ë¤Ï¾¤Ë EFAULT, EINTR, EIO, ENOLINK, EOVERFLOW ¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ¤Î
1155 .\" µ­½Ò¤¬¤¢¤ë¡£
1156 .SH Ãí°Õ
1157 ¥¨¥é¡¼¤ÎºÝ¤ÎÊÖ¤êÃͤ¬
1158 .BR dup2 (2)
1159 ¤È
1160 .B F_DUPFD
1161 ¤Ç¤Ï°Û¤Ê¤Ã¤Æ¤¤¤ë¡£
1162
1163 ¥«¡¼¥Í¥ë 2.0 °Ê¹ß¤Ç¤Ï¡¢
1164 .BR flock (2)
1165 ¤È
1166 .BR fcntl ()
1167 ¤¬ÀßÄꤹ¤ë¥í¥Ã¥¯¼ïÊ̤δ֤ËÁê¸ßºîÍѤϤʤ¤¡£
1168
1169 ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¡¢
1170 .I "struct flock"
1171 ¤Ë¾åµ­°Ê³°¤Î¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ë¤â¤Î¤â¤¢¤ë (Î㤨¤Ð
1172 .IR l_sysid )¡£
1173 .\" e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5
1174 .\" documents it in fcntl(5).  mtk, May 2007
1175 ¤Ï¤Ã¤­¤ê¤È¸À¤¨¤ë¤³¤È¤Ï¡¢¥í¥Ã¥¯¤òÊÝ»ý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤¬Ê̤Υޥ·¥ó¤Ë¸ºß
1176 ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢
1177 .I l_pid
1178 ¤À¤±¤Ï¤¢¤Þ¤êÌò¤Ë¤¿¤¿¤Ê¤¤¤À¤í¤¦¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£
1179 .SH ¥Ð¥°
1180 ¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã (Æäˠi386) ¤Ë¤ª¤±¤ë Linux ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î´·½¬
1181 ¤Î¤¿¤á°Ê²¼¤ÎÀ©¸Â¤¬Â¸ºß¤¹¤ë¡£
1182 .B F_GETOWN
1183 ¤¬ÊÖ¤¹ (Éé¤Î) ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ \-1 ¤«¤é \-4095 ¤ÎÈϰϤËÆþ¤Ã¤¿¾ì¹ç¡¢
1184 glibc ¤Ï¤³¤ÎÊÖ¤êÃͤò¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤È
1185 ´Ö°ã¤Ã¤Æ²ò¼á¤·¤Æ¤·¤Þ¤¦¡£¤Ä¤Þ¤ê¡¢
1186 .BR fcntl ()
1187 ¤ÎÊÖ¤êÃͤϠ\-1 ¤È¤Ê¤ê¡¢
1188 .I errno
1189 ¤Ë¤Ï (Àµ¤Î) ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬ÀßÄꤵ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡£
1190 Linux ¸ÇÍ­¤Î
1191 .B F_SETOWN_EX
1192 ¤È
1193 .B F_GETOWN_EX
1194 ¤Ç¤Ï¤³¤ÎÌäÂê¤ò²óÈò¤Ç¤­¤ë¡£
1195 .\" mtk, Dec 04: alpha ¤È ia64 ¤Ç¤Ï¡¢¾¯¤·¥Æ¥¹¥È¤·¤Æ¤ß¤¿¸Â¤ê¡¢
1196 .\" ¡Ö¤É¤ó¤Ê¡×Éé¤Î PGID ¤Ç¤â F_GETOWN ¤Ç¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤È´Ö°ã¤Ã¤Æ
1197 .\" ²ò¼á¤µ¤ì¤Æ¤·¤Þ¤¦¤è¤¦¤À¡£Â¾¤Î¤¤¤¯¤Ä¤«¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï¡¢
1198 .\" i386 ¤ÈƱÍͤÎÈϰϤΥÁ¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£
1199
1200 Linux 2.4 °ÊÁ°¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤¬
1201 .B F_SETOWN
1202 ¤ò»È¤Ã¤Æ¡¢¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô¤Ë
1203 ¸Æ¤Ó½Ð¤·¸µ°Ê³°¤Î¥×¥í¥»¥¹ (¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤ò»ØÄꤹ¤ë¤È
1204 ȯÀ¸¤¹¤ë¥Ð¥°¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¡¢
1205 ¸Æ¤Ó½Ð¤·¸µ¤¬½êÍ­¼Ô¤È¤·¤Æ»ØÄꤷ¤¿¥×¥í¥»¥¹ (¤ä¥×¥í¥»¥¹¥°¥ë¡¼¥×) ¤Ë
1206 ¥·¥°¥Ê¥ë¤òÁ÷¤ëµö²Ä¤ò»ý¤Ã¤Æ¤¤¤¿¤È¤·¤Æ¤â¡¢
1207 .BR fcntl ()
1208 ¤¬ \-1 ¤òÊÖ¤·
1209 .I errno
1210 ¤Ë
1211 .B EPERM
1212 ¤òÀßÄꤹ¤ë¤³¤È¤¬¤¢¤ë¡£
1213 ¤³¤Î¥¨¥é¡¼¤¬Ê֤俤ˤ⤫¤«¤ï¤é¤º¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½êÍ­¼Ô
1214 ¤ÏÀßÄꤵ¤ì¡¢¥·¥°¥Ê¥ë¤Ï¤½¤Î½êÍ­¼Ô¤ËÁ÷¤é¤ì¤ë¡£
1215
1216 ¤³¤ì¤Þ¤Ç¤Î Linux ¤ÎÁ´¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤ª¤±¤ë¶¯À©¥í¥Ã¥¯¤Î¼ÂÁõ¤Ï¡¢
1217 ¶¥¹ç¾ò·ï²¼¤Ç¶¯À©¥í¥Ã¥¯¤¬ÉÔ´°Á´¤Ë¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤¬¤¢¤ë¡£
1218 .\" http://marc.info/?l=linux-kernel&m=119013491707153&w=2
1219 ¥í¥Ã¥¯¤È½Å¤Ê¤Ã¤Æ¼Â¹Ô¤µ¤ì¤¿
1220 .BR write (2)
1221 ¤Î¸Æ¤Ó½Ð¤·¤Ï¶¯À©¥í¥Ã¥¯¤¬³ÍÆÀ¤µ¤ì¤¿¸å¤Ë¤â¥Ç¡¼¥¿¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
1222 ¥í¥Ã¥¯¤È½Å¤Ê¤Ã¤Æ¼Â¹Ô¤µ¤ì¤¿
1223 .BR read (2)
1224 ¤Î¸Æ¤Ó½Ð¤·¤Ï¶¯À©¥í¥Ã¥¯¤¬³ÍÆÀ¤µ¤ì¤¿¸å¤Ë¤Ê¤Ã¤Æ¹Ô¤ï¤ì¤¿¥Ç¡¼¥¿¤ÎÊѹ¹¤ò
1225 ¸¡½Ð¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
1226 ƱÍͤζ¥¹ç¾ò·ï¤¬¶¯À©¥í¥Ã¥¯¤È
1227 .BR mmap (2)
1228 ¤Î´Ö¤Ë¤â¸ºß¤¹¤ë¡£¤½¤ì¤æ¤¨¡¢¶¯À©¥í¥Ã¥¯¤ËÍê¤ë¤Î¤Ï¤ªÁ¦¤á¤Ç¤­¤Ê¤¤¡£
1229 .SH ´ØÏ¢¹àÌÜ
1230 .BR dup2 (2),
1231 .BR flock (2),
1232 .BR open (2),
1233 .BR socket (2),
1234 .BR lockf (3),
1235 .BR capabilities (7),
1236 .BR feature_test_macros (7)
1237 .P
1238 ¥«¡¼¥Í¥ë¥½¡¼¥¹¤Î
1239 .IR Documentation/filesystems/
1240 ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î
1241 .IR locks.txt ,
1242 .IR mandatory-locking.txt ,
1243 .I dnotify.txt
1244 ¤â»²¾È¤Î¤³¤È¡£
1245 (°ÊÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï
1246 .I Documentation/
1247 ¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Ë¤¢¤ê¡¢
1248 .I mandatory-locking.txt
1249 ¤Ï
1250 .I mandatory.txt
1251 ¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤Ã¤¿¡£)