표준 스트림

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
입력, 출력, 오류를 위한 표준 스트림

표준 스트림은 특정한 프로그래밍 언어 인터페이스뿐 아니라 유닉스유닉스 계열 운영 체제(어느 정도까지는 윈도에도 해당함)에서 컴퓨터 프로그램과 그 환경(일반적으로 단말기) 사이에 미리 연결된 입출력 통로를 가리킨다. 세 개의 입출력 연결이 있는데 표준 입력(stdin), 표준 출력 (stdout), 표준 오류(stderr)이 있다.

표준 입력 (stdin)[편집]

표준 입력은 프로그램으로 들어가는 데이터(문자일 수도 있음)이다. 프로그램은 read 명령을 이용하여 데이터 전송을 요청한다. 모든 프로그램이 입력을 요구하는 것은 아니다. 이를테면 dir이나 ls 프로그램(디렉터리에 들어 있는 파일 이름을 보여 주는 명령)은 스트림 데이터 입력 없이 명령을 수행한다.

리다이렉션 없이 프로그램을 시작한 키보드로부터 입력을 예측한다.

표준 입력을 위한 파일 서술자는 0이다. POSIX <unistd.h> 정의는 STDIN_FILENO이다. 이에 해당하는 <stdio.h> 변수는 FILE* stdin;이다. 이와 비슷하게 <iostream>에서는 std::cin이다.

표준 출력 (stdout)[편집]

표준 출력은 프로그램이 출력 데이터를 기록하는 스트림이다. 프로그램은 write 명령을 이용하여 데이터 전송을 요청한다. 모든 프로그램이 출력을 요구하는 것은 아니다. 이를테면 파일 이름 바꾸기 명령(일반적으로 mv, move, ren)은 명령 수행이 성공적이어도 아무 메시지도 나타내지 않는다.

리다이렉션 없이 표준 출력은 프로그램을 시작한 텍스트 터미널이 된다.

표준 출력을 위한 파일 서술자는 1이다. POSIX <unistd.h> 정의는 STDOUT_FILENO이다. 이에 해당하는 <stdio.h> 변수는 FILE* stdout;이다. 이와 비슷하게 <iostream>에서는 std::cout이다.

표준 오류 (stderr)[편집]

표준 오류는 프로그램이 오류 메시지나 진단을 출력하기 위해 일반적으로 쓰이는 또다른 출력 스트림이다. 표준 출력과는 독립적인 스트림이며 별도로 리다이렉트될 수 있다.

표준 오류를 위한 파일 서술자는 2이다. POSIX <unistd.h> 정의는 STDERR_FILENO이다. 이에 해당하는 <stdio.h> 변수는 FILE* stderr;이다. <iostream> 표준 헤더는 이 스트림에 관련하여 두 개의 변수 std::cerrstd::clog를 제공한다. 전자의 것은 버퍼링이 되지 않지만 후자는 버퍼링을 이용한다.

참고문헌[편집]

같이 보기[편집]

바깥 고리[편집]