STDIO(S) UNIX System V STDIO(S)
Name
stdio - standard buffered input/output package
Syntax
#include <stdio.h>
FILE *stdin, *stdout, *stderr;
Description
The functions described in this manual entry constitute an
efficient, user-level I/O buffering scheme. The in-line
macros getc(S) and putc(S) handle characters quickly. The
macros getchar and putchar, and the higher-level routines
fgetc, fgets, fprintf, fputc, fputs, fread, fscanf, fwrite,
gets, getw, printf, puts, putw, and scanf all use or act as
if they 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. The
fopen(S) function creates certain descriptive data for a
stream and returns a pointer to designate the stream in all
further transactions. Normally, there are three open
streams with constant pointers declared in the <stdio.h>
header file and associated with the standard open files:
stdin standard input file
stdout standard output file
stderr standard error file
A constant NULL (0) designates a nonexistent pointer.
An integer-constant EOF (-1) is returned upon end-of-file or
error by most integer functions that deal with streams (see
the individual descriptions for details).
An integer constant BUFSIZ specifies the size of the buffers
used by the particular implementation.
Any program that uses this package must include the header
file of pertinent macro definitions, as follows:
#include <stdio.h>
The functions and constants mentioned in the entries of
sub-class 3S of this manual are declared in that header 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, ferror, feof, clearerr, and fileno.
Output streams, with the exception of the standard error
stream stderr, are by default buffered if the output refers
to a file, and line-buffered if the output refers to a
terminal. The standard error output stream stderr is by
default unbuffered, but use of freopen (see fopen(S)) will
cause it to become buffered or line-buffered. When an
output stream is unbuffered, information is queued for
writing on the destination file or terminal as soon as
written. When it is buffered, many characters are saved up
and written as a block. When it is line-buffered, each line
of output is queued for writing on the destination terminal
as soon as the line is completed (that is, as soon as a
new-line character is written or terminal input is
requested). The setbuf(S) or setvbuf() functions in
setbuf(S) may be used to change the stream's buffering
strategy.
See Also
open(S), close(S), lseek(S), pipe(S), read(S), write(S),
ctermid(S), cuserid(S), fclose(S), ferror(S), fopen(S),
fread(S), fseek(S), getc(S), gets(S), popen(S), printf(S),
putc(S), puts(S), scanf(S), setbuf(S), system(S),
tmpfile(S), tmpnam(S), ungetc(S)
Diagnostics
Invalid stream pointers will usually cause grave disorder,
possibly including program termination. Individual function
descriptions describe the possible error conditions.
Standards Conformance
stdio is conformant with:
AT&T SVID Issue 2, Select Code 307-127;
and The X/Open Portability Guide II of January 1987.
(printed 6/20/89)