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:
=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.
A simple, although technically inaccurate, way to think about it is to say the standard output is the standard device the computer outputs to. So if said device were the monitor, writing to the standard output would be equivalent to writing to the monitor or displaying on the monitor.
In reality, standard output is a data stream—one that, if all goes well, will end up being displayed on an output device. The idea is for this device to be the standard output device, i.e., the monitor.
=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 computer 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 (and because of the elegance and utility of the concept), these standard streams are present, or simulated, in many operating systems, whether they re Unix-like or not.
=See also=
|
|
