Table of Contents
The
standard library provides a simple and efficient buffered stream interface.
Input and output is mapped into logical data streams and the physical
characteristics are concealed. The functions and macros are listed below;
more information is available from the individual man pages. A stream is
associated with an external file (which may be a physical device) by a
file, which may involve creating a new file. Creating an existing file causes
its former contents to be discarded. If a file can support positioning requests
(such as a disk file, as opposed to a terminal) then a associated with
the stream is positioned at the start of the file (byte zero), unless the
file is opened with append mode. If append mode is used, the position indicator
will be placed the end-of-file. The position indicator is maintained by subsequent
reads, writes and positioning requests. All input occurs as if the characters
were read by successive calls to the function; all output takes place
as if all characters were read by successive calls to the function. A
file is disassociated from a stream by the file. Output streams are flushed
(any unwritten buffer contents are transferred to the host environment)
before the stream is disassociated from the file. The value of a pointer
to a object is indeterminate after a file is closed (garbage). A file
may be subsequently reopened, by the same or another program execution,
and its contents reclaimed or modified (if it can be repositioned at the
start). If the main function returns to its original caller, or the function
is called, all open files are closed (hence all output streams are flushed)
before program termination. Other methods of program termination, such
as do not bother about closing files properly. This implementation needs
and makes no distinction between and streams. In effect, all streams are
binary. No translation is performed and no extra padding appears on any
stream. At program startup, three streams are predefined and need not be
opened explicitly: (for reading conventional input), (for writing
conventional output), and (for writing diagnostic output). These streams
are abbreviated and Initially, the standard error stream is unbuffered;
the standard input and output streams are fully buffered if and only if
the streams do not refer to an interactive or device, as determined by
the function. In fact, freshly-opened streams that refer to terminal devices
default to line buffering, and pending output to such streams is written
automatically whenever an such an input stream is read. Note that this applies
only to if the read request can be satisfied by existing buffered data,
no automatic flush will occur. In these cases, or when a large amount of
computation is done after printing part of a line on an output terminal,
it is necessary to the standard output before going off and computing
so that the output will appear. Alternatively, these defaults may be modified
via the function. The library is a part of the library and routines
are automatically loaded as needed by the compilers and The sections
of the following manual pages indicate which include files are to be used,
what the compiler declaration for the function looks like and which external
variables are of interest. The following are defined as macros; these names
may not be re-used without first removing their current definitions with
Function versions of the macro functions
and exist and will be used if the macros definitions are explicitly
removed.
The standard buffered functions do not interact
well with certain other library and system functions, especially and
The library conforms to
clearerr check and
reset stream status fclose close a stream fdopen stream open functions feof check
and reset stream status ferror check and reset stream status fflush flush
a stream fgetc get next character or word from input stream fgetln get a
line from a stream fgetpos reposition a stream fgets get a line from a stream
fileno check and reset stream status fopen stream open functions fprintf formatted
output conversion fpurge flush a stream fputc output a character or word
to a stream fputs output a line to a stream fread binary stream input/output
freopen stream open functions fropen open a stream fscanf input format conversion
fseek reposition a stream fsetpos reposition a stream ftell reposition a stream
funopen open a stream fwopen open a stream fwrite binary stream input/output
getc get next character or word from input stream getchar get next character
or word from input stream gets get a line from a stream getw get next character
or word from input stream mkstemp create unique temporary file mktemp create
unique temporary file perror system error messages printf formatted output
conversion putc output a character or word to a stream putchar output a character
or word to a stream puts output a line to a stream putw output a character
or word to a stream remove remove directory entry rewind reposition a stream
scanf input format conversion setbuf stream buffering operations setbuffer stream
buffering operations setlinebuf stream buffering operations setvbuf stream
buffering operations snprintf formatted output conversion sprintf formatted
output conversion sscanf input format conversion strerror system error messages
sys_errlist system error messages sys_nerr system error messages tempnam temporary
file routines tmpfile temporary file routines tmpnam temporary file routines
ungetc un-get character from input stream vfprintf formatted output conversion
vfscanf input format conversion vprintf formatted output conversion vscanf input
format conversion vsnprintf formatted output conversion vsprintf formatted
output conversion vsscanf input format conversion
Table of Contents