stdio(3S)stdio(3S)NAMEstdio() - standard buffered input/output stream file package
The Standard I/O functions described in the subsection (3S) entries of
this manual constitute an efficient, user-level I/O buffering scheme.
The and functions handle characters quickly. The following functions
all use or act as if they use and and can be freely intermixed:
A file with associated buffering is called a stream and is declared to
be a pointer to a defined type creates certain descriptive data for a
stream and returns a pointer to designate the stream in all further
transactions. Section (3S) library routines operate on this stream.
At program startup, three streams, and are predefined and do not need
to be explicitly opened. When opened, the standard input and standard
output streams are fully buffered if the output refers to a file and
line-buffered if the output refers to a terminal. The standard error
output stream is by default unbuffered. These three streams have the
following constant pointers declared in the header file :
standard input file
standard output file
standard error file
A constant, NULL, (0) designates a nonexistent pointer.
An integer-constant, (−1) is returned upon end-of-file or error by most
integer functions that deal with streams (see individual descriptions
An integer constant specifies the size of the buffers used by the par‐
ticular implementation (see setbuf(3S)).
Any program that uses this package must include the header file of per‐
tinent macro definitions as follows:
The functions and constants mentioned in subsection (3S) entries of
this manual are declared in that header file and need no further decla‐
A constant defines the default maximum number of open files allowed per
process. To increase the open file limit beyond this default value,
Use of interfaces with a shared read/write file descriptor on will pro‐
vide undefined behavior. Applications which are doing operations on
need to use seperate file pointers for input and output, even if using
the same file descriptor for both types of operations.
Invalid stream pointers usually cause grave disorder, possibly includ‐
ing program termination. Individual function descriptions describe the
possible error conditions.
SEE ALSOclose(2), lseek(2), open(2), pipe(2), read(2), getrlimit(2), write(2),
ctermid(3S), cuserid(3S), fclose(3S), ferror(3S), fgetpos(3S),
fileno(3S), fopen(3S), fread(3S), fseek(3S), fgetpos(3S), getc(3S),
gets(3S), popen(3S), printf(3S), putc(3S), puts(3S), scanf(3S), set‐
buf(3S), system(3S), tmpfile(3S), tmpnam(3S), ungetc(3S).