사진: Unsplash의Ilya 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로 출력하는 습관을 기르시는게
추후에 도움이 많이 되니 이 차이점을 미리 숙지해 두시면 좋겠습니다.
'CS' 카테고리의 다른 글
리눅스 프로세스 좀 더 잘 들여다보기 - htop 사용법 (0) | 2024.04.13 |
---|---|
MSA에서 서비스 간 효과적인 통신을 책임지는 Service mesh 개념 읽어보기 (0) | 2024.03.16 |
리눅스 개발하면서 C++ 디버깅 방법 - gdb breakpoint(중단점) 활용 (0) | 2024.03.04 |
[C++] gdb이용하여 thread 분석하기 (0) | 2024.03.02 |
[makefile 활용] makefile로 코드빌드 하기 (1) | 2024.02.26 |