STDIN(P) POSIX Programmer's Manual STDIN(P)
stderr, stdin, stdout - standard I/O streams
extern FILE *stderr, *stdin, *stdout;
A file with associated buffering is called a stream and is declared to be a pointer to a
defined type FILE. The fopen() function shall create certain descriptive data for a stream
and return 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 and associ-
ated with the standard open files.
At program start-up, three streams shall be predefined and need not be opened explicitly:
standard input (for reading conventional input), standard output (for writing conventional
output), and standard error (for writing diagnostic output). When opened, the standard
error stream is not fully buffered; the standard input and standard output streams are
fully buffered if and only if the stream can be determined not to refer to an interactive
The following symbolic values in <unistd.h> define the file descriptors that shall be
associated with the C-language stdin, stdout, and stderr when the application is started:
Standard input value, stdin. Its value is 0.
Standard output value, stdout. Its value is 1.
Standard error value, stderr. Its value is 2.
The stderr stream is expected to be open for reading and writing.
No errors are defined.
The following sections are informative.
fclose() , feof() , ferror() , fileno() , fopen() , fread() , fseek() , getc() , gets() ,
popen() , printf() , putc() , puts() , read() , scanf() , setbuf() , setvbuf() , tmpfile()
, ungetc() , vprintf() , the Base Definitions volume of IEEE Std 1003.1-2001, <stdio.h>,
Portions of this text are reprinted and reproduced in electronic form from IEEE Std
1003.1, 2003 Edition, Standard for Information Technology -- Portable Operating System
Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the
event of any discrepancy between this version and the original IEEE and The Open Group
Standard, the original IEEE and The Open Group Standard is the referee document. The orig-
inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .
IEEE/The Open Group 2003 STDIN(P)