stdio - standard buffered input/output package
The functions described in Sections 3S constitute an efficient user-
level buffering scheme. The in-line macros getc and putc(3) handle
characters quickly. The higher level routines gets, fgets, scanf,
fscanf, fread, puts, fputs, printf, fprintf, fwrite all use getc and
putc; they can be freely intermixed.
A file with associated buffering is called a stream, and is declared to
be a pointer to a defined type FILE. Fopen(3) creates certain descrip-
tive data for a stream and returns a pointer to designate the stream in
all further transactions. There are three normally open streams with
constant pointers declared in the include file and associated with the
standard open files:
stdin standard input file
stdout standard output file
stderr standard error file
A constant `pointer' NULL (0) designates no stream at all.
An integer constant EOF (-1) is returned upon end of file or error by
integer functions that deal with streams.
Any routine that uses the standard input/output package must include
the header file <stdio.h> of pertinent macro definitions. The func-
tions and constants mentioned in sections labeled 3S are declared in
the include file and need no further declaration. The constants, and
the following `functions' are implemented as macros; redeclaration of
these names is perilous: getc, getchar, putc, putchar, feof, ferror,
open(2), close(2), read(2), write(2)
The value EOF is returned uniformly to indicate that a FILE pointer has
not been initialized with fopen, input (output) has been attempted on
an output (input) stream, or a FILE pointer designates corrupt or oth-
erwise unintelligible FILE data.