표준 스트림과 stdin, stdout, stderr

Numberbeen·2022년 12월 11일
0

DevOps Bootcamp

목록 보기
10/30

표준 스트림 (Standard Stream)

표준 스트림이란, 프로그램을 드나드는 데이터를 흐름으로 표현한 단어이다.
프로그램들은 정해진 어떤 "입력" 을 받으며 정해진 어떤 형태의 "출력" 을 내보낸다.

예를 들어 터미널 화면 같은 경우 입력은 키보드를 통해 출력은 모니터 화면에 있는 터미널를 통해 이루어진다.

과거에는 프로그램의 입출력은 운영체제 쪽과 얽혀 어려운 작업이었다.
현재 유닉스에서는 장치를 추상화해서 각 장치를 파일처럼 다루는 것으로 이러한 문제를 해결했다.

다양한 하드웨어 장치별로 입력과 출력을 위한 설정 작업을 따로 하는 것이 아니라 파일을 읽고 쓰는 한 가지 작업으로 통일했고, 이 파일에 들어오고 나가는 데이터의 흐름을 스트림으로 정의 하였다.
이 때 일반적으로 동작하는 프로그램을 실행 시 세 개의 스트림이 자동으로 열리는데 이를 표준스트림 이라고 부른다.

표준 스트림은 아래와 같이 나뉜다.

STDIN (Standard input, 0, 입력을 위한 스트림)

  • 표준 입력은 프로그램으로 들어가는 입력값의 데이터 스트림이여, 줄여서 stdin 으로 표현함. 리눅스 쉘에서는 표준 설정이 키보드로 되어 있다. 모든 프로그램이 입력을 요구하지 않는다.
    [대표적인 예로는 아이디, 비밀번호를 입력할 때 이러한 표준 입력 스트림을 사용한다.]

STDOUT (Standard Output, 1, 출력을 위한 스트림)

  • 표준 출력은 프로그램이 출력 데이터를 기록하는 스트림으로, 줄여서 stdout 으로 표현함.
    대부분 텍스트 터미널에서 이루어지며 표준 입력과 마찬가지로 모든 프로그램이 출력을 요구하지 않는다.

STDERR (Standard Error, 2, 오류 메시지를 출력하기 위한 스트림)

  • 표준 오류는 오류 메시지나 진단을 출력하기 위해 일반적으로 쓰이며, 또다른 출력 스트림이다. 줄여서 stderr로 표현함
profile
내기 이해한 것을 보관하는 곳

0개의 댓글