본문 바로가기
CS

Standard stream의 유형 stdout, stderr 차이점과 활용

by Warehaus 2024. 3. 5.

 

사진: UnsplashIlya Pavlov

 

표준 스트림 유형

표준스트림 유형은 3가지 I/O 연결 유형이 있습니다.

 

1. standard input ( stdin )

 

Standard input은 프로그램이 데이터를 입력 받는 스트림입니다. 

파일을 읽거나, CLI에서 입력을 받는 경우에 standard input을 사용하게 됩니다.

 

2. standard output ( stdout )

 

Standard output  은 프로그램이 출력 데이터를 쓰기 위한 스트림 입니다.

모든 프로그램이 stdout 스트림을 사용하지는 않습니다만, 터미널에 출력을 쓰는 경우 stdout 스트림을 사용한다고 볼 수 있겠습니다.

 

stdout 의 파일 디스크립터는 1 을 사용하고 있습니다.

파일디스크립터 1에 내용을 쓰는 경우 stdout 스트림에 데이터를 쓰게 됩니다.

 

3. standard error ( stderr )

 

Standard error 는 또다는 출력 스트림 유형입니다.

주로 프로그램이 에러메시지를 출력하기 위해 사용되며, 출력 된 에러 메시지는 진단에 이용됩니다.

stderr 는 stdout과 독립적으로 출력이 가능한 스트림 입니다.

 

 

반응형

 

stdout 과 stderr의 차이

 

stdout과 stderr 는 프로그램이 출력하는 정보를 다르게 다루는 표준 스트림(standard stream)입니다.

 

 

유형 설명
stdout (Standard Output) -  stdout 는 프로그램이 일반적인 출력을 보낼 때 사용되는 표준 출력 스트림입니다.

- 프로그램의 실행 결과, 출력 정보 등이 여기에 전송됩니다.

- 일반적으로 터미널 또는 콘솔 창에 출력되며, 다른 프로그램이나 파일에 리디렉션할 수 있습니다.

- 예를 들어, `print()` 함수로 출력한 내용이 `stdout`로 전송됩니다.
stderr (Standard Error) - `stderr`는 프로그램이 오류 메시지나 예외 정보 등을 출력할 때 사용되는 표준 오류 스트림입니다.

- 프로그램이 예기치 않은 상황이나 오류를 감지하면 해당 정보는 `stderr`로 전송됩니다.

- 터미널이나 콘솔 창에 출력되지만, `stdout`와는 별도로 관리됩니다.

- 오류 메시지를 기록하거나 디버깅 정보를 출력할 때 사용됩니다. 프로그래밍 언어에서 의도적으로 오류메시지를 stderr로 지정 가능합니다.

 

일반적으로 프로그램에서 stdout 과 stderr는 아래 목적으로 사용합니다.

- 표준 출력 (`stdout`): 정상적인 실행 결과
- 표준 오류 (`stderr`): 오류 메시지 또는 예외 정보

이 두 가지 스트림을 구분함으로써 사용자나 다른 프로그램이 프로그램의 실행 결과와 오류를 구분하여 처리할 수 있습니다.

 

프로그램 작성 시 예외처리에서 출력하는 메시지는 stdout보다는 stderr로 출력하는 습관을 기르시는게

추후에 도움이 많이 되니 이 차이점을 미리 숙지해 두시면 좋겠습니다.