Standard C++ Library Reference ISO/IEC (VERSION3)
Next
Files and Streams
Text and Binary Streams · Byte and Wide Streams · Controlling Streams · Stream States
A program communicates with the target environment by reading and writing files (ordered
sequences of bytes). A file can be, for example, a data set that you can read and write repeatedly
(such as a disk file), a stream of bytes generated by a program (such as a pipeline), or a stream
of bytes received from or sent to a peripheral device (such as the keyboard or display). The
latter two are interactive files. Files are typically the principal means by which to interact with
a program.
You manipulate all these kinds of files in much the same way -- by calling library functions.
You include the standard header <stdio.h> to declare most of these functions.
Before you can perform many of the operations on a file, the file must be opened. Opening a
file associates it with a stream, a data structure within the Standard C library that glosses over
many differences among files of various kinds. The library maintains the state of each stream in
an object of type FILE.
The target environment opens three files prior to program startup. You can open a file by
calling the library function fopen with two arguments. The first argument is a filename, a
multibyte string that the target environment uses to identify which file you want to read or
write. The second argument is a C string that specifies:
whether you intend to read data from the file or write data to it or both●
whether you intend to generate new contents for the file (or create a file if it did not
previously exist) or leave the existing contents in place
●
whether writes to a file can alter existing contents or should only append bytes at the end
of the file
●
whether you want to manipulate a text stream or a binary stream●
Once the file is successfully opened, you can then determine whether the stream is byte
oriented (a byte stream) or wide oriented (a wide stream). Wide-oriented streams are
supported only with Amendment 1. A stream is initially unbound. Calling certain functions to
operate on the stream makes it byte oriented, while certain other functions make it wide
oriented. Once established, a stream maintains its orientation until it is closed by a call to
fclose or freopen.