]>
Commit | Line | Data |
---|---|---|
fea681da MK |
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 | .\" | |
6 | .\" Permission is granted to make and distribute verbatim copies of this | |
7 | .\" manual provided the copyright notice and this permission notice are | |
8 | .\" preserved on all copies. | |
9 | .\" | |
10 | .\" Permission is granted to copy and distribute modified versions of this | |
11 | .\" manual under the conditions for verbatim copying, provided that the | |
12 | .\" entire resulting derived work is distributed under the terms of a | |
13 | .\" permission notice identical to this one. | |
14 | .\" | |
15 | .\" Since the Linux kernel and libraries are constantly changing, this | |
16 | .\" manual page may be incorrect or out-of-date. The author(s) assume no | |
17 | .\" responsibility for errors or omissions, or for damages resulting from | |
18 | .\" the use of the information contained herein. The author(s) may not | |
19 | .\" have taken the same level of care in the production of this manual, | |
20 | .\" which is licensed free of charge, as they might when working | |
21 | .\" professionally. | |
22 | .\" | |
23 | .\" Formatted or processed versions of this manual, if unaccompanied by | |
24 | .\" the source, must acknowledge the copyright and authors of this work. | |
25 | .\" | |
26 | .\" Modified 1993-07-21 by Rik Faith <faith@cs.unc.edu> | |
27 | .\" Modified 1994-08-21 by Michael Haardt | |
28 | .\" Modified 1996-04-13 by Andries Brouwer <aeb@cwi.nl> | |
29 | .\" Modified 1996-05-13 by Thomas Koenig | |
30 | .\" Modified 1996-12-20 by Michael Haardt | |
31 | .\" Modified 1999-02-19 by Andries Brouwer <aeb@cwi.nl> | |
32 | .\" Modified 1998-11-28 by Joseph S. Myers <jsm28@hermes.cam.ac.uk> | |
33 | .\" Modified 1999-06-03 by Michael Haardt | |
305a0578 MK |
34 | .\" Modified 2002-05-07 by Michael Kerrisk <mtk-manpages@gmx.net> |
35 | .\" Modified 2004-06-23 by Michael Kerrisk <mtk-manpages@gmx.net> | |
1c1e15ed MK |
36 | .\" 2004-12-08, mtk, reordered flags list alphabetically |
37 | .\" 2004-12-08, Martin Pool <mbp@sourcefrog.net> (& mtk), added O_NOATIME | |
fea681da | 38 | .\" |
e366dbc4 | 39 | .TH OPEN 2 2005-06-22 "Linux 2.6.12" "Linux Programmer's Manual" |
fea681da MK |
40 | .SH NAME |
41 | open, creat \- open and possibly create a file or device | |
42 | .SH SYNOPSIS | |
43 | .nf | |
44 | .B #include <sys/types.h> | |
45 | .B #include <sys/stat.h> | |
46 | .B #include <fcntl.h> | |
47 | .sp | |
48 | .BI "int open(const char *" pathname ", int " flags ); | |
49 | .BI "int open(const char *" pathname ", int " flags ", mode_t " mode ); | |
50 | .BI "int creat(const char *" pathname ", mode_t " mode ); | |
51 | .fi | |
52 | .SH DESCRIPTION | |
e366dbc4 MK |
53 | Given a |
54 | .IR pathname | |
55 | for a file, | |
1f6ceb40 | 56 | .BR open () |
e366dbc4 MK |
57 | returns a file descriptor, a small, non-negative integer |
58 | for use in subsequent system calls | |
59 | .RB ( read "(2), " write "(2), " lseek "(2), " fcntl "(2), etc.)." | |
60 | The file descriptor returned by a successful call will be | |
2c4bff36 | 61 | the lowest-numbered file descriptor not currently open for the process. |
e366dbc4 MK |
62 | .PP |
63 | The new file descriptor is set to remain open across an | |
64 | .BR execve (2) | |
1f6ceb40 MK |
65 | (i.e., the |
66 | .B FD_CLOEXEC | |
67 | file descriptor flag described in | |
68 | .BR fcntl (2) | |
69 | is initially disabled). | |
70 | The file offset is set to the beginning of the file (see | |
71 | .BR lseek (2)). | |
e366dbc4 MK |
72 | .PP |
73 | A call to | |
74 | .BR open () | |
75 | creates a new | |
76 | .IR "open file description" , | |
77 | an entry in the system-wide table of open files. | |
e366dbc4 MK |
78 | This entry records the file offset and the file status flags |
79 | (modifiable via the | |
80 | .BR fcntl () | |
81 | .B F_SETFL | |
82 | operation). | |
2c4bff36 MK |
83 | A file descriptor is a reference to one of these entries; |
84 | this reference is unaffected if | |
85 | .I pathname | |
86 | is subsequently removed or modified to refer to a different file. | |
e366dbc4 | 87 | The new open file description is initially not shared |
2c4bff36 MK |
88 | with any other process, |
89 | but sharing may arise via | |
90 | .BR fork (2). | |
e366dbc4 | 91 | .PP |
fea681da MK |
92 | The parameter |
93 | .I flags | |
e366dbc4 MK |
94 | must include one of the following |
95 | .IR "access modes" : | |
96 | .BR O_RDONLY ", " O_WRONLY ", or " O_RDWR. | |
97 | These request opening the file read-only, write-only, or read/write, | |
98 | respectively. | |
99 | In addition, zero or more of the following may be | |
fea681da | 100 | .RI bitwise- or 'd |
e366dbc4 MK |
101 | in |
102 | .IR flags : | |
fea681da | 103 | .TP |
1c1e15ed MK |
104 | .B O_APPEND |
105 | The file is opened in append mode. Before each | |
106 | .BR write (), | |
1e568304 | 107 | the file offset is positioned at the end of the file, |
1c1e15ed MK |
108 | as if with |
109 | .BR lseek (). | |
110 | .B O_APPEND | |
111 | may lead to corrupted files on NFS file systems if more than one process | |
112 | appends data to a file at once. This is because NFS does not support | |
113 | appending to a file, so the client kernel has to simulate it, which | |
114 | can't be done without a race condition. | |
115 | .TP | |
116 | .B O_ASYNC | |
117 | .\" FIXME -- as far as I can tell O_ASYNC doesn't work for open(2), | |
118 | .\" only when set via fcntl(2) -- MTK, Dec 04 | |
119 | Generate a signal (SIGIO by default, but this can be changed via | |
120 | .BR fcntl (2)) | |
121 | when input or output becomes possible on this file descriptor. | |
1f6ceb40 MK |
122 | This feature is only available for terminals, pseudo-terminals, |
123 | sockets, and (since Linux 2.6) pipes and FIFOs. | |
124 | See | |
1c1e15ed MK |
125 | .BR fcntl (2) |
126 | for further details. | |
127 | .TP | |
fea681da MK |
128 | .B O_CREAT |
129 | If the file does not exist it will be created. | |
130 | The owner (user ID) of the file is set to the effective user ID | |
131 | of the process. The group ownership (group ID) is set either to | |
132 | the effective group ID of the process or to the group ID of the | |
133 | parent directory (depending on filesystem type and mount options, | |
134 | and the mode of the parent directory, see, e.g., the mount options | |
135 | .I bsdgroups | |
136 | and | |
137 | .I sysvgroups | |
138 | of the ext2 filesystem, as described in | |
139 | .BR mount (8)). | |
140 | .TP | |
1c1e15ed MK |
141 | .B O_DIRECT |
142 | Try to minimize cache effects of the I/O to and from this file. | |
143 | In general this will degrade performance, but it is useful in | |
144 | special situations, such as when applications do their own caching. | |
145 | File I/O is done directly to/from user space buffers. | |
e366dbc4 | 146 | The I/O is synchronous, i.e., at the completion of a |
1c1e15ed MK |
147 | .BR read (2) |
148 | or | |
e366dbc4 MK |
149 | .BR write (2), |
150 | data is guaranteed to have been transferred. | |
1c1e15ed MK |
151 | Under Linux 2.4 transfer sizes, and the alignment of user buffer |
152 | and file offset must all be multiples of the logical block size | |
153 | of the file system. Under Linux 2.6 alignment to 512-byte boundaries | |
154 | suffices. | |
155 | .\" Alignment should satisfy requirements for the underlying device | |
156 | .\" There may be coherency problems. | |
157 | .br | |
158 | A semantically similar interface for block devices is described in | |
159 | .BR raw (8). | |
160 | .TP | |
161 | .B O_DIRECTORY | |
9f8d688a MK |
162 | If \fIpathname\fR is not a directory, cause the open to fail. |
163 | .\" But see the following and its replies: | |
164 | .\" http://marc.theaimsgroup.com/?t=112748702800001&r=1&w=2 | |
165 | .\" [PATCH] open: O_DIRECTORY and O_CREAT together should fail | |
166 | .\" O_DIRECTORY | O_CREAT causes O_DIRECTORY to be ignored. | |
167 | This flag is Linux-specific, and was added in kernel version 2.1.126, to | |
1c1e15ed MK |
168 | avoid denial-of-service problems if \fBopendir\fR(3) is called on a |
169 | FIFO or tape device, but should not be used outside of the | |
170 | implementation of \fBopendir\fR. | |
171 | .TP | |
fea681da MK |
172 | .B O_EXCL |
173 | When used with | |
174 | .BR O_CREAT , | |
175 | if the file already exists it is an error and the | |
1c1e15ed | 176 | .BR open () |
fea681da | 177 | will fail. In this context, a symbolic link exists, regardless |
1f6ceb40 | 178 | of where it points to. |
fea681da | 179 | .B O_EXCL |
1f6ceb40 | 180 | is broken on NFS file systems; programs which rely on it for performing |
fea681da | 181 | locking tasks will contain a race condition. The solution for performing |
1c1e15ed MK |
182 | atomic file locking using a lockfile is to create a unique file on |
183 | the same file system (e.g., incorporating hostname and pid), use | |
fea681da | 184 | .BR link (2) |
63aa9df0 | 185 | to make a link to the lockfile. If \fBlink\fP() returns 0, the lock is |
fea681da MK |
186 | successful. Otherwise, use |
187 | .BR stat (2) | |
188 | on the unique file to check if its link count has increased to 2, | |
189 | in which case the lock is also successful. | |
190 | .TP | |
1c1e15ed MK |
191 | .B O_LARGEFILE |
192 | (LFS) | |
193 | Allow files whose sizes cannot be represented in an | |
8478ee02 | 194 | .I off_t |
1c1e15ed | 195 | (but can be represented in an |
8478ee02 | 196 | .IR off64_t ) |
1c1e15ed MK |
197 | to be opened. |
198 | .TP | |
199 | .B O_NOATIME | |
200 | (Since Linux 2.6.8) | |
310b7919 MK |
201 | Do not update the file last access time (st_atime in the inode) |
202 | when the file is | |
1c1e15ed MK |
203 | .BR read (2). |
204 | This flag is intended for use by indexing or backup programs, | |
205 | where its use can significantly reduce the amount of disk activity. | |
206 | This flag may not be effective on all filesystems. | |
207 | One example is NFS, where the server maintains the access time. | |
208 | .\" FIXME? This flag also affects the treatment of st_atime by mmap() | |
209 | .\" and readdir(2), MTK, Dec 04. | |
210 | .TP | |
fea681da MK |
211 | .B O_NOCTTY |
212 | If | |
213 | .I pathname | |
214 | refers to a terminal device \(em see | |
215 | .BR tty (4) | |
216 | \(em it will not become the process's controlling terminal even if the | |
217 | process does not have one. | |
218 | .TP | |
1c1e15ed MK |
219 | .B O_NOFOLLOW |
220 | If \fIpathname\fR is a symbolic link, then the open fails. This is a | |
221 | FreeBSD extension, which was added to Linux in version 2.1.126. | |
222 | Symbolic links in earlier components of the pathname will still be | |
e366dbc4 MK |
223 | followed. |
224 | .\" The headers from glibc 2.0.100 and later include a | |
225 | .\" definition of this flag; \fIkernels before 2.1.126 will ignore it if | |
226 | .\" used\fR. | |
fea681da MK |
227 | .TP |
228 | .BR O_NONBLOCK " or " O_NDELAY | |
229 | When possible, the file is opened in non-blocking mode. Neither the | |
1c1e15ed | 230 | .BR open () |
fea681da MK |
231 | nor any subsequent operations on the file descriptor which is |
232 | returned will cause the calling process to wait. | |
233 | For the handling of FIFOs (named pipes), see also | |
234 | .BR fifo (4). | |
235 | This mode need not have any effect on files other than FIFOs. | |
236 | .TP | |
237 | .B O_SYNC | |
238 | The file is opened for synchronous I/O. Any | |
1c1e15ed | 239 | .BR write ()s |
fea681da MK |
240 | on the resulting file descriptor will block the calling process until |
241 | the data has been physically written to the underlying hardware. | |
242 | .I See RESTRICTIONS below, though. | |
243 | .TP | |
1c1e15ed MK |
244 | .B O_TRUNC |
245 | If the file already exists and is a regular file and the open mode allows | |
246 | writing (i.e., is O_RDWR or O_WRONLY) it will be truncated to length 0. | |
247 | If the file is a FIFO or terminal device file, the O_TRUNC | |
248 | flag is ignored. Otherwise the effect of O_TRUNC is unspecified. | |
fea681da MK |
249 | .PP |
250 | Some of these optional flags can be altered using | |
1c1e15ed | 251 | .BR fcntl () |
fea681da MK |
252 | after the file has been opened. |
253 | ||
254 | The argument | |
255 | .I mode | |
256 | specifies the permissions to use in case a new file is created. It is | |
257 | modified by the process's | |
258 | .BR umask | |
259 | in the usual way: the permissions of the created file are | |
260 | .BR "(mode & ~umask)" . | |
261 | Note that this mode only applies to future accesses of the | |
262 | newly created file; the | |
1c1e15ed | 263 | .BR open () |
fea681da MK |
264 | call that creates a read-only file may well return a read/write |
265 | file descriptor. | |
266 | .PP | |
267 | The following symbolic constants are provided for | |
268 | .IR mode : | |
269 | .TP | |
270 | .B S_IRWXU | |
271 | 00700 user (file owner) has read, write and execute permission | |
272 | .TP | |
273 | .B S_IRUSR (S_IREAD) | |
274 | 00400 user has read permission | |
275 | .TP | |
276 | .B S_IWUSR (S_IWRITE) | |
277 | 00200 user has write permission | |
278 | .TP | |
279 | .B S_IXUSR (S_IEXEC) | |
280 | 00100 user has execute permission | |
281 | .TP | |
282 | .B S_IRWXG | |
283 | 00070 group has read, write and execute permission | |
284 | .TP | |
285 | .B S_IRGRP | |
286 | 00040 group has read permission | |
287 | .TP | |
288 | .B S_IWGRP | |
289 | 00020 group has write permission | |
290 | .TP | |
291 | .B S_IXGRP | |
292 | 00010 group has execute permission | |
293 | .TP | |
294 | .B S_IRWXO | |
295 | 00007 others have read, write and execute permission | |
296 | .TP | |
297 | .B S_IROTH | |
298 | 00004 others have read permission | |
299 | .TP | |
300 | .B S_IWOTH | |
d301ee6c | 301 | 00002 others have write permission |
fea681da MK |
302 | .TP |
303 | .B S_IXOTH | |
304 | 00001 others have execute permission | |
305 | .PP | |
306 | .I mode | |
307 | must be specified when | |
308 | .B O_CREAT | |
309 | is in the | |
310 | .IR flags , | |
311 | and is ignored otherwise. | |
312 | ||
1c1e15ed | 313 | .BR creat () |
fea681da | 314 | is equivalent to |
1c1e15ed | 315 | .BR open () |
fea681da MK |
316 | with |
317 | .I flags | |
318 | equal to | |
319 | .BR O_CREAT|O_WRONLY|O_TRUNC . | |
320 | .SH "RETURN VALUE" | |
e1d6264d MK |
321 | .BR open () |
322 | and | |
323 | .BR creat () | |
1c1e15ed MK |
324 | return the new file descriptor, or \-1 if an error occurred |
325 | (in which case, | |
fea681da MK |
326 | .I errno |
327 | is set appropriately). | |
328 | Note that | |
1c1e15ed | 329 | .BR open () |
fea681da | 330 | can open device special files, but |
1c1e15ed | 331 | .BR creat () |
e9496f74 | 332 | cannot create them; use |
fea681da MK |
333 | .BR mknod (2) |
334 | instead. | |
335 | .LP | |
e366dbc4 | 336 | On NFS file systems with UID mapping enabled, \fBopen\fP() may |
1c1e15ed MK |
337 | return a file descriptor but e.g. \fBread\fP(2) requests are denied |
338 | with \fBEACCES\fP. | |
e366dbc4 | 339 | This is because the client performs \fBopen\fP() by checking the |
1c1e15ed MK |
340 | permissions, but UID mapping is performed by the server upon |
341 | read and write requests. | |
fea681da | 342 | |
310b7919 MK |
343 | If the file is newly created, its st_atime, st_ctime, st_mtime fields |
344 | (respectively, time of last access, time of last status change, and | |
345 | time of last modification; see | |
346 | .BR stat (2)) | |
347 | are set | |
348 | to the current time, and so are the st_ctime and st_mtime fields of the | |
fea681da MK |
349 | parent directory. |
350 | Otherwise, if the file is modified because of the O_TRUNC flag, | |
310b7919 | 351 | its st_ctime and st_mtime fields are set to the current time. |
fea681da MK |
352 | .SH ERRORS |
353 | .TP | |
354 | .B EACCES | |
355 | The requested access to the file is not allowed, or search permission | |
356 | is denied for one of the directories in the path prefix of | |
357 | .IR pathname , | |
358 | or the file did not exist yet and write access to the parent directory | |
359 | is not allowed. | |
360 | (See also | |
361 | .BR path_resolution (2).) | |
362 | .TP | |
363 | .B EEXIST | |
364 | .I pathname | |
365 | already exists and | |
366 | .BR O_CREAT " and " O_EXCL | |
367 | were used. | |
368 | .TP | |
369 | .B EFAULT | |
e1d6264d MK |
370 | .IR pathname |
371 | points outside your accessible address space. | |
fea681da MK |
372 | .TP |
373 | .B EISDIR | |
374 | .I pathname | |
375 | refers to a directory and the access requested involved writing | |
376 | (that is, | |
377 | .B O_WRONLY | |
378 | or | |
379 | .B O_RDWR | |
380 | is set). | |
381 | .TP | |
382 | .B ELOOP | |
383 | Too many symbolic links were encountered in resolving | |
384 | .IR pathname , | |
385 | or \fBO_NOFOLLOW\fR was specified but | |
386 | .I pathname | |
387 | was a symbolic link. | |
388 | .TP | |
389 | .B EMFILE | |
390 | The process already has the maximum number of files open. | |
391 | .TP | |
392 | .B ENAMETOOLONG | |
e1d6264d MK |
393 | .IR pathname |
394 | was too long. | |
fea681da MK |
395 | .TP |
396 | .B ENFILE | |
397 | The system limit on the total number of open files has been reached. | |
398 | .TP | |
399 | .B ENODEV | |
400 | .I pathname | |
401 | refers to a device special file and no corresponding device exists. | |
e9496f74 | 402 | (This is a Linux kernel bug; in this situation ENXIO must be returned.) |
fea681da MK |
403 | .TP |
404 | .B ENOENT | |
405 | O_CREAT is not set and the named file does not exist. | |
406 | Or, a directory component in | |
407 | .I pathname | |
408 | does not exist or is a dangling symbolic link. | |
409 | .TP | |
410 | .B ENOMEM | |
411 | Insufficient kernel memory was available. | |
412 | .TP | |
413 | .B ENOSPC | |
414 | .I pathname | |
415 | was to be created but the device containing | |
416 | .I pathname | |
417 | has no room for the new file. | |
418 | .TP | |
419 | .B ENOTDIR | |
420 | A component used as a directory in | |
421 | .I pathname | |
422 | is not, in fact, a directory, or \fBO_DIRECTORY\fR was specified and | |
423 | .I pathname | |
424 | was not a directory. | |
425 | .TP | |
426 | .B ENXIO | |
427 | O_NONBLOCK | O_WRONLY is set, the named file is a FIFO and | |
428 | no process has the file open for reading. | |
429 | Or, the file is a device special file and no corresponding device exists. | |
430 | .TP | |
431 | .B EOVERFLOW | |
432 | .I pathname | |
e9496f74 | 433 | refers to a regular file, too large to be opened; see O_LARGEFILE above. |
fea681da | 434 | .TP |
1c1e15ed MK |
435 | .B EPERM |
436 | The | |
437 | .B O_NOATIME | |
438 | flag was specified, but the effective user ID of the caller | |
439 | .\" Strictly speaking, it's the file system UID... (MTK) | |
440 | did not match the owner of the file and the caller was not privileged | |
441 | .RB ( CAP_FOWNER ). | |
442 | .TP | |
fea681da MK |
443 | .B EROFS |
444 | .I pathname | |
445 | refers to a file on a read-only filesystem and write access was | |
446 | requested. | |
447 | .TP | |
448 | .B ETXTBSY | |
449 | .I pathname | |
450 | refers to an executable image which is currently being executed and | |
451 | write access was requested. | |
452 | .SH NOTE | |
453 | Under Linux, the O_NONBLOCK flag indicates that one wants to open | |
454 | but does not necessarily have the intention to read or write. | |
455 | This is typically used to open devices in order to get a file descriptor | |
456 | for use with | |
457 | .BR ioctl (2). | |
458 | .SH "CONFORMING TO" | |
b14d4aa5 | 459 | SVr4, SVID, POSIX, X/OPEN, 4.3BSD. |
fea681da | 460 | The |
1c1e15ed MK |
461 | .BR O_NOATIME , |
462 | .BR O_NOFOLLOW , | |
fea681da MK |
463 | and |
464 | .B O_DIRECTORY | |
465 | flags are Linux-specific. | |
466 | One may have to define the | |
467 | .B _GNU_SOURCE | |
468 | macro to get their definitions. | |
469 | .LP | |
470 | The (undefined) effect of | |
471 | .B O_RDONLY | O_TRUNC | |
1f6ceb40 | 472 | varies among implementations. On many systems the file is actually |
fea681da MK |
473 | truncated. |
474 | .\" Linux 2.0, 2.5: truncate | |
475 | .\" Solaris 5.7, 5.8: truncate | |
476 | .\" Irix 6.5: truncate | |
477 | .\" Tru64 5.1B: truncate | |
478 | .\" HP-UX 11.22: truncate | |
479 | .\" FreeBSD 4.7: truncate | |
480 | .LP | |
481 | The | |
482 | .B O_DIRECT | |
483 | flag was introduced in SGI IRIX, where it has alignment restrictions | |
484 | similar to those of Linux 2.4. IRIX has also a fcntl(2) call to | |
485 | query appropriate alignments, and sizes. FreeBSD 4.x introduced | |
486 | a flag of same name, but without alignment restrictions. | |
487 | Support was added under Linux in kernel version 2.4.10. | |
488 | Older Linux kernels simply ignore this flag. | |
1f6ceb40 MK |
489 | One may have to define the |
490 | .B _GNU_SOURCE | |
491 | macro to get its definition. | |
fea681da MK |
492 | .SH BUGS |
493 | "The thing that has always disturbed me about O_DIRECT is that the whole | |
494 | interface is just stupid, and was probably designed by a deranged monkey | |
e9496f74 | 495 | on some serious mind-controlling substances." \(em Linus |
fea681da MK |
496 | .SH RESTRICTIONS |
497 | There are many infelicities in the protocol underlying NFS, affecting | |
498 | amongst others | |
499 | .BR O_SYNC " and " O_NDELAY . | |
500 | ||
501 | POSIX provides for three different variants of synchronised I/O, | |
502 | corresponding to the flags \fBO_SYNC\fR, \fBO_DSYNC\fR and | |
503 | \fBO_RSYNC\fR. Currently (2.1.130) these are all synonymous under Linux. | |
504 | .SH "SEE ALSO" | |
505 | .BR close (2), | |
e366dbc4 | 506 | .BR dup (2), |
fea681da MK |
507 | .BR fcntl (2), |
508 | .BR link (2), | |
1f6ceb40 | 509 | .BR lseek (2), |
fea681da MK |
510 | .BR mknod (2), |
511 | .BR mount (2), | |
e366dbc4 | 512 | .BR mmap (2), |
fea681da MK |
513 | .BR path_resolution (2), |
514 | .BR read (2), | |
515 | .BR socket (2), | |
516 | .BR stat (2), | |
517 | .BR umask (2), | |
518 | .BR unlink (2), | |
519 | .BR write (2), | |
520 | .BR fopen (3), | |
521 | .BR fifo (4) |