fopen
---open a fileSynopsis
#include <stdio.h> FILE *fopen(const char *file, const char *mode); FILE *_fopen_r(void *reent, const char *file, const char *mode);
Description
fopen
initializes the data structures needed to read or write a
file. Specify the file's name as the string at file, and the kind
of access you need to the file with the string at mode.
The alternate function _fopen_r
is a reentrant version.
The extra argument reent is a pointer to a reentrancy structure.
Three fundamental kinds of access are available: read, write, and append.
*mode
must begin with one of the three characters `r
',
`w
', or `a
', to select one of these:
r
w
a
fseek
.
Some host systems distinguish between ``binary'' and ``text'' files.
Such systems may perform data transformations on data written to, or
read from, files opened as ``text''.
If your system is one of these, then you can append a `b
' to any
of the three modes above, to specify that you are opening the file as
a binary file (the default is to open the file as a text file).
`rb
', then, means ``read binary''; `wb
', ``write binary''; and
`ab
', ``append binary''.
To make C programs more portable, the `b
' is accepted on all
systems, whether or not it makes a difference.
Finally, you might need to both read and write from the same file.
You can also append a `+
' to any of the three modes, to permit
this. (If you want to append both `b
' and `+
', you can do it
in either order: for example, "rb+"
means the same thing as
"r+b"
when used as a mode string.)
Use "r+"
(or "rb+"
) to permit reading and writing anywhere in
an existing file, without discarding any data; "w+"
(or "wb+"
)
to create a new file (or begin by discarding all data from an old one)
that permits reading and writing anywhere in it; and "a+"
(or
"ab+"
) to permit reading anywhere in an existing file, but writing
only at the end.
Returns
fopen
returns a file pointer which you can use for other file
operations, unless the file you requested could not be opened; in that
situation, the result is NULL
. If the reason for failure was an
invalid string at mode, errno
is set to EINVAL
.
Portability
fopen
is required by ANSI C.
Supporting OS subroutines required: close
, fstat
, isatty
,
lseek
, open
, read
, sbrk
, write
.
Packaging copyright © 1988-2000 OAR Corporation
Context copyright by each document's author. See Free Software Foundation for information.