카테고리 없음

fprintf와 stderr

테니스치는토끼 2016. 1. 27. 14:26


stdin 기본 입력장치(키보드) -> 입력
stdout 기본 출력장치(모니터) ->출력
stderr 기본 출력장치(모니터) -> 에러
stdprn 프린터->프린터
stdaux 통신포트->AUX


우리는 stderr을 에러 표시할때 사용합니다.
우리는 이렇게 stderr에 출력할수 있습니다.

fprintf(stderr, "Error Test!");


fprintf가 그냥 파일에 작성하는 함수인줄 아셨다구요?
fprintf는 사실 스트림에 출력하는 함수입니다.
우리가 파일에 작성하는 메커니즘은
FILE* 변수명 = fopen(...);
으로 파일 스트림을 연 후 fprintf로 작성하는거죠.

근데 그냥 printf로 에러라고 써도 될텐데, stdout, stderr 둘다 모니터로 나오는거, 
왜 stderr을 쓸까요?

printf를 쓸경우 버퍼 문제로 제대로 출력이 되지 않을 경우가 있습니다.
이렇게 될 경우 에러 메시지 출력을 제때 또는 제대로 못하게 되는 경우도 생기죠. stderr 같은 경우는 버퍼 없이 바로 출력 합니다. 따라서 어떤 상황이 와도 가장 빠르게 에러 메시지를 출력 할수가 있는거죠. 



원본 : http://breadlab.net/100