NAME
fopen, freopen, fdopen - open a stream
SYNOPSIS
#include <stdio.h>
FILE *fopen(const char *filename, const char *type)
FILE *freopen(const char *filename, const char *type, FILE *stream)
FILE *fdopen(int fildes, const char *type)
DESCRIPTION
Fopen opens the file named by filename and associates a
stream with it. Fopen returns a pointer to be used to iden-
tify the stream in subsequent operations.
Type is a character string having one of the following
values:
"r" open for reading
"w" create for writing
"a" append: open for writing at end of file, or create for
writing
In addition, each type may be followed by a "+" to have the
file opened for reading and writing. "r+" positions the
stream at the beginning of the file, "w+" creates or trun-
cates it, and "a+" positions it at the end. Both reads and
writes may be used on read/write streams, with the limita-
tion that an fseek, rewind, or reading an end-of-file must
be used between a read and a write or vice-versa.
Freopen substitutes the named file in place of the open
stream. It returns the original value of stream. The ori-
ginal stream is closed.
Freopen is typically used to attach the preopened constant
names, stdin, stdout, stderr, to specified files.
Fdopen associates a stream with a file descriptor obtained
from open, dup, creat, or pipe(2). The type of the stream
must agree with the mode of the open file.
SEE ALSO
open(2), fclose(3).
DIAGNOSTICS
Fopen and freopen return the pointer NULL if filename cannot
be accessed, if too many files are already open, or if other
resources needed cannot be allocated.
BUGS
Fdopen is not portable to systems other than UNIX.
The read/write types do not exist on all systems. Those
systems without read/write modes will probably treat the
type as if the "+" was not present. These are unreliable in
any event.