What Are stdin, stdout, and stderr on Linux?


Technology / HowToGeek 6 Views 0

Terminal window on a Linux computer
Fatmawati Achmad Zaenuri/Shutterstock.com

stdin, stdout, and stderr are three knowledge streams created whenever you launch a Linux command. You need to use them to tell if your scripts are being piped or redirected. We present you ways.

Streams Be a part of Two Points

As soon as you begin to study Linux and Unix-like working techniques, you’ll come throughout the phrases stdin, stdout, and stederr. These are three standard streams which might be established when a Linux command is executed. In computing, a stream is something that may switch knowledge. In the case of these streams, that knowledge is text.

Knowledge streams, like water streams, have two ends. They've a source and an outflow. Whichever Linux command you’re utilizing offers one end of each stream. The other end is decided by the shell that launched the command. That end might be related to the terminal window, related to a pipe, or redirected to a file or other command, based on the command line that launched the command.

The Linux Commonplace Streams

In Linux, stdin is the usual input stream. This accepts textual content as its input. Textual content output from the command to the shell is delivered by way of the stdout (commonplace out) stream. Error messages from the command are despatched via the stderr (commonplace error) stream.

So you'll be able to see that there are two output streams, stdout and stderr, and one input stream, stdin. As a result of error messages and regular output each have their own conduit to hold them to the terminal window, they are often dealt with independently of one another.

Streams Are Dealt with Like Information

Streams in Linux—like virtually every thing else—are handled as if they have been information. You possibly can learn text from a file, and you may write textual content right into a file. Each of those actions contain a stream of knowledge. So the idea of dealing with a stream of knowledge as a file isn’t that much of a stretch.

Each file associated with a process is allocated a singular quantity to determine it. This is called the file descriptor. Each time an action is required to be performed on a file, the file descriptor is used to determine the file.

These values are all the time used for stdin, stdout, and stderr:

  • zero: stdin
  • 1: stdout
  • 2: stderr

Reacting to Pipes and Redirects

To ease someone’s introduction to a subject, a standard method is to teach a simplified version of the topic. For example, with grammar, we're advised that the rule is “I before E, except after C.” However truly, there are more exceptions to this rule than there are instances that obey it.

Read the remaining 89 paragraphs