NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | NOTES | ERRORS | ATTRIBUTES | SEE ALSO
#include <stdio.h>FILE * fopen(const char * filename, const char * type);
The fopen function opens the file named by filename and associates a stream with it. It returns a pointer to the FILE structure associated with the stream .
The filename pointer indicates a character string that contains the name of the file to be opened.
The type is a character string with one of the following values:
open for reading
truncate or create for writing
append; open for writing at end of file, or create for writing
open for update (reading and writing)
truncate or create for update
append; open or create for update at end-of-file
The freopen function opens the file whose pathname is the string pointed to by filename , and associates the stream pointed to by stream with it.
The original stream is closed regardless of whether the subsequent open succeeds. The freopen function returns a pointer to the FILE structure associated with stream.
The freopen function is typically used to attach open streams associated with stdin , stdout , and stderr to other files.
When a file is opened for update, both input and output may be performed on the resulting stream . However, output may not be directly followed by input without an intervening fseek (3STDC), rewind (3STDC), or fflush (3STDC), and input may not be directly followed by output without an intervening fseek (3STDC), rewind (3STDC), fflush (3STDC), or an input operation which encounters end-of-file.
When a file is opened for append (that is, when type is a or a+ ), it is impossible to overwrite information already in the file. The fseek (3STDC) function may be used to reposition the file pointer to any position in the file, but when output is written to the file, the current file pointer is ignored. All output is written at the end of the file and causes the file pointer to be repositioned at the end of the output. If two separate actors open the same file for append, each actor may write freely to the file without fear of destroying output being written by the other. The output from the two actors will be inserted into the file in the order in which it is written.
The fdopen function associates a stream with the existing file descriptor, fildes. The mode of the stream must be compatible with the mode of the file descriptor.
In case of failure, these functions return a NULL pointer and set errno to indicate the error condition.
The number of streams that a process can have open at one time is OPEN_MAX.
The errno value is set to EINVAL if the mode provided to fopen , fdopen , or freopen was invalid.
The fopen , fdopen and freopen functions may also fail and set errno to any of the errors specified for the routine malloc (3STDC).
The fopen function may also fail and set errno to any of the errors specified for the routine open (2POSIX).
The fdopen function may also fail and set errno to any of the errors specified for the routine fcntl (2POSIX).
The freopen function may also fail and set errno for any of the errors specified for the routines open (2POSIX), fclose (3STDC), and fflush (3STDC).
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | NOTES | ERRORS | ATTRIBUTES | SEE ALSO