File: fcntl.2

package info (click to toggle)
manpages-ja 0.4.0.0.20000115-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 8,760 kB
  • ctags: 3
  • sloc: sh: 6,269; perl: 155; makefile: 55
file content (355 lines) | stat: -rw-r--r-- 10,359 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
.\"                               1993 Michael Haardt, Ian Jackson;
.\"                               1998 Jamie Lokier.
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.  The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Modified Sat Jul 24 13:39:26 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified Tue Sep 26 21:47:21 1995 by Andries Brouwer (aeb@cwi.nl)
.\" and again on 960413 and 980804 and 981223.
.\" Modified Fri Dec 11 17:57:27 1998 by Jamie Lokier <jamie@imbolc.ucc.ie>
.\" Applied correction by Christian Ehrhardt - aeb, 990712
.\"
.\" Japanese Version Copyright (c) 1996 Takeshi Ueno
.\"         all rights reserved.
.\" Translated Wed Jul  3 21:57:08 JST 1996
.\"         by Takeshi Ueno <tueno@vio.co.jp>
.\" Modified Thu Sep 10 00:46:21 JST 1998
.\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
.\" Modified Sat Aug 14 09:38:01 JST 1999
.\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
.\"
.\"WORD:	asynchronous I/O	Ʊ I/O
.\"WORD:	descriptor		ǥץ
.\"
.TH FCNTL 2 "12 July 1999" Linux "Linux Programmer's Manual"
.SH ̾
fcntl \- ե롦ǥץ
.SH 
.nf
.B #include <unistd.h>
.B #include <fcntl.h>
.sp
.BI "int fcntl(int " fd ", int " cmd );
.BI "int fcntl(int " fd ", int " cmd ", long " arg );
.BI "int fcntl(int " fd ", int " cmd ", struct flock * " lock );
.fi
.SH 
.B fcntl
ϡե롦ǥץ
.IR fd 
˴ؤ뤵ޤޤԤ׵᤹μ
.IR cmd 
ˤäƷޤ:
.TP 0.9i
.B F_DUPFD
Ѳǽʥե롦ǥץǡ
.I arg
礭ʿΤǾΤΤ򸫤Ĥơ
.I fd
Υԡˤ롣ϻꤷǥץΤΤѤ
.BR dup2 (2)
ȤϰۤʤäƤ롣
.sp
ŤǥץȿǥץƱΤȤƻȤȤǤ롣 
ϥå(lock)ե֥ݥ󥿡ե饰ͭ롣
㤨СΥǥץΥե֤
.B lseek
Ȥäѹ줿硢⤦Υե֤ѹ롣
.sp
ʤ顢ĤΥǥץϼ¹Ի(close-on-exec)ե饰
ͭʤԡϼ¹Իե饰ϥդˤΤǡexec 
ݤ˥ʤ
.sp
ȡǥץ֤롣
.TP
.B F_GETFD
¹Ի(close-on-exec)ե饰ɤ߼롣
.B FD_CLOEXEC
ӥåȤ 0 ʤ顢ե
.BR exec
Ƥ⥪ץ(open)줿ޤޤǤʤϥ롣
.TP
.B F_SETFD
¹Ի(close-on-exec)ե饰
.I arg

.B FD_CLOEXEC
ӥåȤǻꤷͤꤹ
.TP
.B F_GETFL
ǥץΥե饰ɤ߼(
.BR open (2)
κݤꤵ줿ƤΥե饰֤)
.TP
.B F_SETFL
ǥץΥե饰
.IR arg ǻꤷͤꤹ롣
.BR O_APPEND ", " O_NONBLOCK ", " O_ASYNC
ΤߤǤ롣 ¾Υե饰ϱƶʤ
.sp
ե饰(
.BR dup "(2) , " fork (2)
ʤɤǺ줿)ƱǥץΥԡǶͭ롣
.sp
ե饰Ȥΰ̣
.BR open (2)
Ƥ롣
.TP
.BR F_GETLK ", " F_SETLK ", " F_SETLKW
ǤդΥե롦å롣ܤΰ
.I lock
 flock ¤ΤؤΥݥ󥿤Ǥ(Υˤäƾ񤭤)
.TP
.B F_GETLK
åΤ˸줿ϡ˸ flock¤Τ֤
˸ʤäϡΥå
.B l_type
եɤ
.B F_UNLCK
ꤹ롣
.TP
.B F_SETLK
.B l_type
եɤ
.B F_RDLCK

.BR F_WRLCK
λåꤹ롣
.BR F_UNLCK
λå(clear)롣
⤷å¾ͤλϡ\-1 ֤
.I errno

.B EACCES

.BR EAGAIN 
ꤵ롣
.TP
.B F_SETLKW
.BR F_SETLK
Ʊͤ顼֤˥åޤԤۤʤ롣
.B fcntl ()
ԤäƤ֤˥ʥˤϡ
(󥰥ʥ롦ϥɥ顼ä)Ǥ \-1 ֤졢
.I errno
 EINTR ꤵ롣
.TP
.B F_GETOWN
ߡե롦ǥץ
.IR fd 
Υ٥Ȥˤ SIGIO ʥ뤪
SIGURG ʥץΥץ ID 
ޤϥץ롼פ֤
.sp
ץ롼פ֤ͤ롣
.TP
.B F_SETOWN
ե롦ǥץ
.IR fd 
Υ٥Ȥˤ SIGIO ʥ뤪
SIGURG ʥץΥץ ID 
ޤϥץ롼פꤹ롣
.sp
ץ롼פͤǻꤹ롣

.\" glibc.info :
.IR open (2)
κݤλޤ
.IR fcntl 

.B F_SETFL
ޥɤѤƥե롦ǥ꥿
.B O_ASYNC
֥ե饰ꤷˤϡΥե롦ǥץؤ
Ϥǽˤʤä SIGIO ʥ뤬롣
.sp
ʥץޤϥץ롼פ
.B fcntl
ؿ 
.B F_SETOWN
ޥɤѤ򤹤뤳ȤǤ롣
ե롦ǥץå(socket)ʤХåȤ
Ӱ賰(out-of-band)ǡϤ SIGURG ʥ⡢
Ʊ򤹤뤳Ȥˤʤ(SIGURG 줿ˤ
.BR select (2)
åȤ̤ʾ֡פˤ𤹤)
ե롦ǥץü(terminal)ǥХ
³ƤСSIGIO ʥϤüΥեɡ
ץ롼פؤ롣
.TP
.B F_GETSIG
ϤϤǽˤʤä˼륷ʥ롣
ͤξˤSIGIO 뤳Ȥ̣롣¾Ƥͤ(SIGIO 
ޤ)ˤΥʥ뤬졢λ SA_SIGINFO ƳƤ
ʥ롦ϥɥ顼ɲäξ뤳ȤǤ롣
.TP
.B F_SETSIG
ϤϤǽˤʤä˼륷ʥꤹ롣
ͤξˤSIGIO 뤳Ȥ̣롣¾Ƥͤ
(SIGIO ޤ)ˤΥʥ뤬졢λ SA_SIGINFO 
ƳƤϥʥ롦ϥɥ顼ɲäξ뤳ȤǤ롣
.sp
F_SETSIG ˥ʳͤꤷʥ롦ϥɥ顼 SA_SIGINFO 
ꤹ(
.BR sigaction (2)
򻲾) I/O ٥Ȥ˴ؤɲäξ
.I siginfo_t
¤Τǥʥ롦ϥɥ顼Ϥ롣
.I si_code
եȤʥ븶 SI_SIGIO Ǥ뤳Ȥ򼨤Ƥ硢
.I si_fd
եɤϥ٥Ȥ˷ӤĤե롦ǥץͿ롣
ǤʤСɤΥեǥץѲǽϼ
ʤΤǡɤΥե롦ǥץ I/O ǽ
ˤ̾ε
.RB ( select (2),
.BR poll (2),
.B O_NONBLOCK
.BR read (2)
ʤ)ѤʤФʤʤʤ.
.sp
POSIX 1b Υꥢ롦ࡦʥ(ͤ SIGRTMIN ʾ)򤷤Ƥ
ʣ I/O ٥ȤƱʥֹѤƥ塼뤫
ʤ(塼뤫ɤѲǽʥ˰¸Ƥ)
嵭Ʊͤ SA_SIGINFO ꤵƤ硢ʥ롦ϥɥ顼
ɲäξ롣
.PP
εѤ뤳ȤˤꡢۤȤɤξ
.BR select (2)

.BR poll (2)
Ѥ뤳Ȥʤ˴Ʊ I/O 뤳ȤǤ
.PP
.BR O_ASYNC ,
.BR F_GETOWN ,
.B F_SETOWN
λѤ BSD  Linux ͭǤ롣
.B F_GETSIG

.B F_SETSIG
 Linux ͭǤ롣POSIX ƱͤΤȤԤƱ I/O  
.I aio_sigevent
¤ΤäƤ롣Linux Ϥ GNU C 饤֥(Glibc) ΰ
ѲǽǤ롣
.SH ֤
֤ͤμˤäư㤦:
.TP 0.9i
.B F_DUPFD
ǥץ֤
.TP
.B F_GETFD
ե饰֤ͤ
.TP
.B F_GETFL
ե饰֤ͤ
.TP
.B F_GETOWN
ǥץνͭԤ֤
.TP
.B F_GETSIG
ɤ߹ߤݤФǽˤʤä륷ʥ͡⤷
Ū SIGIO ưξˤϥ֤
.TP
¾ƤΥޥɤϥ֤
.PP
顼λ \-1 ֤졢
.I errno
Ŭڤͤꤵ롣
.SH 顼
.TP 0.9i
.B EACCES
¾ΥץݻƤåˤäػߤƤ롣
.TP
.B EAGAIN
Υե¾ΥץˤäƥꡦޥåפƤ뤿ᡢ
ػߤƤ롣
.TP
.B EBADF
.I fd
ץ󤵤줿ե롦ǥץǤʤ
.TP
.B EDEADLK
ꤵ줿
.B F_SETLKW
ޥɤ¹Ԥˤϥǥåɥå(deadlock)ˤʤ뤳ȤФ줿
.TP
.TP
.B EFAULT
.I lock
Ѳǽʥɥ쥹֤γˤ롣
.TP
.B EINTR
.BR F_SETLKW
ޥɤʥˤޤ줿
.BR F_GETLK "  " F_SETLK 
ξ硢åǧꤹ˥ʥˤäƳޤ줿
ϤƤ⡼ȤΥեå(㤨 NFS ǥå
)˵롣Ǥⵯ礬롣
.TP
.B EINVAL
.BR F_DUPFD ǡ
.I arg
餫⤷ϵͤ礭
.BR F_SETSIG 
ξ硢
.I arg
ѲǽʥʥֹǤϤʤ
.B EMFILE
.BR F_DUPFD ǡ
ץǤ˺ޤǥե롦ǥץ򥪡ץ󤷤Ƥ롣
.TP
.B ENOLCK
ץ󤵤Ƥåο¿᤮ơåơ֥뤬äѤǤ롣
ޤϥ⡼ȡå󥰡ץȥ(㤨 NFS Υå)Ԥ
.TP
.B EPERM
ɲ°ꤵ줿ե
.B O_APPEND
ե饰򥯥ꥢ褦Ȼߤ
.SH 
顼κݤ֤ͤ
.B dup2

.BR F_DUPFD
ǤϰۤʤäƤ롣
.SH 
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 ˻ѤǤե饰
.BR open (2)
ǥݡȤƤΤƱǤꡢ줾ΥƥǰۤʤäƤ롣
O_APPEND, O_NONBLOCK, O_RDONLY, O_RDWR  POSIX.1 λͤˤ롣
SVr4 ǤϤ˵ҤƤʤ¾ΤĤΥץե饰
ݡȤƤ롣
.PP
SVr4 ˤ¾ EFAULT, EINTR, EIO, ENOLINK, EOVERFLOW 顼֤ˤĤƤ
Ҥ롣
.SH Ϣ
.BR dup2 (2),
.BR open (2),
.BR socket (2),
.BR flock (2)