SYNOPSIS #include <stdio.h> FILE *fopen(const char *file, const char *mode); FILE *_fopen_r(void *reent, const char *file, const char *mode);DESCRIPTION
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 the following modes.
rb, then, means read binary; wb means write binary; ab means 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.
COMPLIANCE
fopen
is required by ANSI C.
Supporting OS subroutines
required: close,
fstat,
isatty,
lseek,
open,
read,
sbrk,
write.