stdio(3S) STANDARD I/O FUNCTIONS stdio(3S)
NAME
stdio - standard buffered input/output package
SYNOPSIS
#include <stdio.h>
FILE *stdin, *stdout, *stderr;
DESCRIPTION
The functions described in the entries of sub-class 3S of
this manual constitute an efficient, user-level I/O buffer-
ing scheme. The in-line macros getc and putc handle charac-
ters 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 [see
intro(3)] and is declared to be a pointer to a defined type
FILE. fopen 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
The following symbolic values in <unistd.h> define the file
descriptors that will be associated with the C-language
stdin, stdout and stderr when the application is started:
STDIN_FILENO Standard input value, stdin. It has
the value of 0.
STDOUT_FILENO Standard output value, stdout. It has
the value of 1.
STDERR_FILENO Standard error value, stderr. It has
the value of 2.
A constant null designates a null 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.
An integer constant FILENAME_MAX specifies the size needed
for an array of char large enough to hold the longest file
Last change: C Programming Language Utilities 1
stdio(3S) STANDARD I/O FUNCTIONS stdio(3S)
name string that the implementation guarantees can be
opened.
An integer constant FOPEN_MAX specifies the minimum number
of files that the implementation guarantees can be open
simultaneously. Note that no more than 255 files may be
opened via fopen, and only file descriptors 0 through 255
are valid.
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 fol-
lowing ``functions'' are implemented as macros (redeclara-
tion of these names is perilous): getc, getchar, putc,
putchar, ferror, feof, clearerr, and fileno. There are also
function versions of 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 termi-
nal. The standard error output stream stderr is by default
unbuffered, but use of freopen [see fopen(3S)] will cause it
to become buffered or line-buffered. When an output stream
is unbuffered, information is queued for writing on the des-
tination 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 ter-
minal input is requested). setbuf or setvbuf [both
described in setbuf(3S)] may be used to change the stream's
buffering strategy.
SEE ALSO
open(2), close(2), lseek(2), pipe(2), read(2), write(2),
ctermid(3S), cuserid(3S), fclose(3S), ferror(3S), fopen(3S),
fread(3S), fseek(3S), getc(3S), gets(3S), popen(3S),
printf(3S), putc(3S), puts(3S), scanf(3S), setbuf(3S),
system(3S), tmpfile(3S), tmpnam(3S), ungetc(3S).
DIAGNOSTICS
Invalid stream pointers usually cause grave disorder, possi-
bly including program termination. Individual function
descriptions describe the possible error conditions.
Last change: C Programming Language Utilities 2