Standard streams
|
The standard streams are a set of input and output channels featured in Unix and Unix-like operating systems, and provided by the standard I/O library ('stdio.h') of the C programming language. They consist of three channels through which data can be passed to or from a program:
Contents |
Standard input
Standard input is the input stream into which text or other data can be entered into a program. Certain programs will, by default, use the standard input stream as a data source if not given a file to use as input. The file descriptor for standard input is 0.
Standard output
Standard output is the output stream into which data are written from a program. Data written to standard output are usually written to the screen unless redirected. It is intended to be used as the default output stream. The file descriptor for standard output is 1.
Standard error
Standard error is the output stream used by programs for outputting error messages or other diagnostics. It is a separate stream from standard output and can be redirected separately from it. The file descriptor for standard error is 2.
Relevance to the C programming language
The C standard library header file <stdio.h> defines three pointers to represent the standard streams: stdin
for standard input, stdout
for standard output, and stderr
for standard error. They are of type FILE *
and as such can be used with most of the standard file operations.
When running programs from a terminal, standard input is taken from the keyboard, while standard output and error will appear on the screen.
Because of the ubiquity of C and especially its use when programming system software for any operating system, these standard streams are present, or simulated, in many operating systems, whether they're Unix-like or not.