검색을 해보니 버퍼링을 하기 때문에 printf 함수 사용시 \n을 적어주지 않으면 의도하지 않는 결과가 나타날 수 있다고 하는데...
언제 그런 상황이 발생하는지요?
코드를 짜서.. 상황을 만들어 보려고 하는데.. 잘 안됩니다..
중간에 segmentation fault 등이 나는 상황에서 디버거를 사용하기는 귀찮고 -_-;;; 그냥 중간 중간 #ifdef 등의 매크로를 이용해서 printf 로 중간중간 간단한 디버깅용 메시지를 찍는 경우... (fork 를 통해 다중 프로세스 환경이 된 경우에도 문제가 발생할 수 있습니다)
뉴라인이 들어가지 않으면 그 지점을 통과했음에도 실제 메시지는 찍히지 않는 경우가 발생합니다. 라인버퍼를 사용하니까요 (하지만 이 얘기는 버퍼 사이즈를 조정하지 않은 stdout 에 찍을 때에 한정된 얘기입니다.)
뉴라인이 싫은데 자신이 프린트 한 시점에서 바로 출력이 나오길 바란다면 stderr 에 찍는 방법이 있겠습니다 :)
[code:1]#include <stdio.h>#inclu
printf에서 \n의 유무에 따라 aaa의 출력 시점이 달라집니다.
======================
BLOG : http://superkkt.com
Re: printf 함수에서 \n을 사용 안할시 문제가 발생하는 경우가 있는지요..?
중간에 segmentation fault 등이 나는 상황에서 디버거를 사용하기는 귀찮고 -_-;;; 그냥 중간 중간 #ifdef 등의 매크로를 이용해서 printf 로 중간중간 간단한 디버깅용 메시지를 찍는 경우... (fork 를 통해 다중 프로세스 환경이 된 경우에도 문제가 발생할 수 있습니다)
뉴라인이 들어가지 않으면 그 지점을 통과했음에도 실제 메시지는 찍히지 않는 경우가 발생합니다. 라인버퍼를 사용하니까요 (하지만 이 얘기는 버퍼 사이즈를 조정하지 않은 stdout 에 찍을 때에 한정된 얘기입니다.)
뉴라인이 싫은데 자신이 프린트 한 시점에서 바로 출력이 나오길 바란다면 stderr 에 찍는 방법이 있겠습니다 :)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
댓글 달기