Citizendia
Your Ad Here

The standard streams for input, output, and error
The standard streams for input, output, and error

The standard streams are preconnected input and output channels between a computer program and its environment (typically a text terminal) when it begins execution. A computer terminal is an electronic or electromechanical hardware device that is used for entering data into and displaying data from a Computer or a Computing These standard connections are provided in Unix and Unix-like operating systems, C and C++ runtime environments, and their successors. Unix (officially trademarked as UNIX, sometimes also written as Unix with Small caps) is a computer A Unix-like (sometimes shortened to *nix) Operating system is one that behaves in a manner similar to a Unix system while not necessarily conforming An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. The three I/O connections are called standard input, standard output and standard error. In Computing, input/output, or I/O, refers to the communication between an Information processing system (such as a Computer) and the outside

Contents

Background

In most operating systems predating Unix, programs had to explicitly connect to the appropriate input and output data. On many of those systems, this could be an intimidating programming challenge created by OS-specific intricacies such as obtaining control environment settings, accessing a local file table, determining the intended data set, and handling the correct case of a card reader, magnetic tape drive, disk drive, line printer, card punch, or interactive terminal.

Unix provided several groundbreaking advances, one of which was to provide abstract devices: it removed the need for a program to know or care what kind of devices it was communicating with. Older operating systems forced upon the programmer a record structure and, frequently non-orthogonal data semantics and device control. In Mathematics, two Vectors are orthogonal if they are Perpendicular, i Unix eliminated this complexity with the concept of a data stream: an ordered sequence of data bytes which can be read until the end of file. In Computing, end-of-file, commonly abbreviated EOF, is a condition in a computer Operating system where no more data can be read from a data source A program may also write bytes as desired and need not (and can't easily) declare how many there will be, or how they will be grouped.

Another Unix breakthrough was to automatically associate input and output by default—the program (and programmer) did absolutely nothing to establish input and output for a typical input-process-output program (unless it chose a different paradigm). In contrast, previous operating systems usually required some—often complex—job control language to establish connections, or the equivalent burden had to be orchestrated by the program. Job Control Language ( JCL) is a Scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch job or

Since Unix provided standard streams, the Unix C runtime environment was obligated to support it as well. As a result, most C runtime environments (and C's descendants), regardless of the operating system, provide equivalent functionality.

Standard input (stdin)

Standard input is data (often text) going into a program. The program requests data transfers by use of the read operation. Not all programs require input. For example, the dir or ls program (which displays file names contained in a directory) performs its operation without any stream data input.

Unless redirected, input is expected from the text terminal which started the program. A computer terminal is an electronic or electromechanical hardware device that is used for entering data into and displaying data from a Computer or a Computing

The file descriptor for standard input is 0 (zero); the corresponding <stdio. In computer programming a file descriptor is an abstract key for accessing a file h> variable is FILE* stdin; similarly, the <iostream> variable is std::cin.

Standard output (stdout)

Standard output is the stream where a program writes its output data. The program requests data transfer with the write operation. Not all programs generate output. For example the file rename command (variously called mv, move, ren) is silent on success.

Unless redirected, standard output is the text terminal which initiated the program. A computer terminal is an electronic or electromechanical hardware device that is used for entering data into and displaying data from a Computer or a Computing

The file descriptor for standard output is 1 (one); the corresponding <stdio. In computer programming a file descriptor is an abstract key for accessing a file h> variable is FILE* stdout; similarly, the <iostream> variable is std::cout.

Standard error (stderr)

Standard error is another output stream typically used by programs to output error messages or diagnostics. An error message is a message displayed when an unexpected condition occurs usually on a Computer or other device Diagnosis is the identification by Process of elimination, of the nature of anything It is a stream independent of standard output and can be redirected separately. The usual destination is the text terminal which started the program to provide the best chance of being seen even if standard output is redirected (so not readily observed). A computer terminal is an electronic or electromechanical hardware device that is used for entering data into and displaying data from a Computer or a Computing For example, output of a program in a pipeline is redirected to input of the next program, but errors from each program still go directly to the text terminal. In Unix-like computer Operating systems a pipeline is the original software pipeline: a set of processes chained by their Standard

It is acceptable—and normal—for standard output and standard error to be directed to the same destination, such as the text terminal. Messages appear in the same order as the program writes them, unless buffering is involved. (For example, a common situation is when the standard error stream is unbuffered but the standard output stream is line-buffered; in this case, text written to standard error later may appear on the terminal earlier, if the standard output stream's buffer is not yet full. )

The file descriptor for standard error is 2; the corresponding <stdio. In computer programming a file descriptor is an abstract key for accessing a file h> variable is FILE* stderr. The C++ <iostream> standard header provides two variables associated with this stream: std::cerr and std::clog, the former being unbuffered and the latter using the same buffering mechanism as all other C++ streams.

Most shells allow both standard output and standard error to be redirected to the same file using

 >& filename

Bourne-style shells alllow standard error to be redirected to the same destination that standard output is directed to using

 2>&1

Timeline

1950s: Fortran

Fortran had the equivalent of Unix file descriptors, UNIT=5 for stdin, and UNIT=6 for stdout.

! FORTRAN 77 example
      PROGRAM MAIN
      READ(UNIT=5,*)NUMBER
      WRITE(UNIT=6,'(F5. 3)')' NUMBER IS: ',NUMBER
      END

1960: ALGOL 60

ALGOL 60 was criticized for having no standard file access. Algol (β Per / Beta Persei known colloquially as the Demon Star, is a bright Star in the Constellation Perseus.

1968: ALGOL 68

ALGOL 68's input and output facilities were collectively referred to as the transput. Time-line of ALGOL 68 The Algorithmic Language ALGOL 68 Reports Mar Koster coordinated the definition of the transput standard. Cornelis HA Koster ( Kees Koster) is a professor in the Department of Informatics of the University of Nijmegen in the Netherlands This standard included: stand in, stand out, stand error and stand back.

Example:

# ALGOL 68 example #
main:(
  REAL number;
  getf(stand in,($g$,number));
  printf(($"Number is: "g(6,4)"OR "$,number)); # OR #
  putf(stand out,($" Number is: "g(6,4)"!"$,number));
  newline(stand out)
)
Input: Output:
3. 14159
Number is: +3. 142 OR Number is: +3. 142!

1970s: C and Unix

In the C programming language stdin, stdout and stderr streams were attached to the existing Unix file descriptors 0, 1 and 2 respectively. tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured

1980s: C++

In C++, the standard streams are referred to by cin, cout and cerr objects (see iostream). C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. iostream is a Header file which is used for Input/output in the C++ programming language

2000s: . NET

In C# and other .NET languages, the standard streams are referred to by System. C# (pronounced C Sharp is a Multi-paradigm Console (for stdin and stdout) and System. Console. Error (for stderr).

// C# example
public static int Main()
{
    double number;
    string s;
 
    try
    {
        s = System. Console. ReadLine();
        number = double. Parse(s);
        System. Console. WriteLine("Number is: {0:F3}", number);
        return 0;
    }
    catch (System. FormatException e)
    {
        // if Parse() threw an exception
        System. Console. Error. WriteLine("No number was entered!");
        return 1;
    }
}
' Visual Basic . NET example
 
Public Function Main() As Integer
    Dim number As Double
    Dim s As String
 
    Try
        s = System. Console. ReadLine()
        number = CDbl(s)
        System. Console. WriteLine("Number is: {0:F3}", number)
        Return 0
    Catch e As System. InvalidCastException
        ' if Parse() threw an exception
        System. Console. Error. WriteLine("No number was entered!")
        Return 1
    End Try
End Function

GUIs

Graphical user interfaces (GUIs) rarely make use of the standard streams. Consequently, redirecting GUI programs or constructing a GUI pipeline is neither practical nor useful. The nearest analog is probably cutting (or copying) from one application and pasting into another. Since manual user operations are required, moving large numbers of pastes is not especially efficient. One notable exception is the dwm tiling window manager, which uses its stdin to display status information. dwm is a minimalist dynamic Tiling window manager for X11. It is externally similar to Wmii, but internally much simpler In computing a tiling window manager is a Window manager with an organization of the screen into mutually non-overlapping frames as opposed to the more popular approach

Some GUI programs, primarily on Unix, still write debug information to standard error.

See also

References

External links


© 2009 citizendia.org; parts available under the terms of GNU Free Documentation License, from http://en.wikipedia.org
Dapyx Software network: MP3 Explorer | Ebook Manager | Zenithic