표준 스트림이란, 프로그램을 드나드는 데이터를 흐름으로 표현한 단어이다.
프로그램들은 정해진 어떤 "입력" 을 받으며 정해진 어떤 형태의 "출력" 을 내보낸다.
예를 들어 터미널 화면 같은 경우 입력은 키보드를 통해 출력은 모니터 화면에 있는 터미널를 통해 이루어진다.
과거에는 프로그램의 입출력은 운영체제 쪽과 얽혀 어려운 작업이었다.
현재 유닉스에서는 장치를 추상화해서 각 장치를 파일처럼 다루는 것으로 이러한 문제를 해결했다.
다양한 하드웨어 장치별로 입력과 출력을 위한 설정 작업을 따로 하는 것이 아니라 파일을 읽고 쓰는 한 가지 작업으로 통일했고, 이 파일에 들어오고 나가는 데이터의 흐름을 스트림으로 정의 하였다.
이 때 일반적으로 동작하는 프로그램을 실행 시 세 개의 스트림이 자동으로 열리는데 이를 표준스트림 이라고 부른다.
표준 스트림은 아래와 같이 나뉜다.
STDIN (Standard input, 0, 입력을 위한 스트림)
STDOUT (Standard Output, 1, 출력을 위한 스트림)
STDERR (Standard Error, 2, 오류 메시지를 출력하기 위한 스트림)