2011-10-13 8 views
1

작동하지 않습니다와 나는 그렇게 묻고 거기에 더 나은 솔루션이 내기. 그들은 단순히 대부분의 시간에 인쇄되지 않습니다. 내가 추가 시도한 fflush(stdout)하지만 도움이되지 않는 것.의 printf 내가 전에이 문제를 본 적이 생각

다른 의견이나 대안이 있으십니까?

예 : assert 전에

printf... <- not printed 
printf... <- not printed due to the assert. stdout not flushed? 

do something 

assert() 
+3

관련 코드를 알려주시겠습니까? – Mysticial

+6

코드를 보지 않고 말할 수는 없습니다. –

+1

"더 나은 해결책"? 당신의 해결책은 무엇입니까? –

답변

0

전화 fflush(stdout). 또는 stdout이 리디렉션되지 않고 터미널을 참조하는 경우 메시지 끝 부분에 줄 바꿈 만 쓰면됩니다. 기본적으로 stdout은 버퍼링되며 (터미널에서 버퍼링 된 버퍼, 그렇지 않으면 완전히 버퍼링 됨) 출력 버퍼 오버 플로우 나 줄 바꿈 (줄 바꿈 모드) 또는 fflush이 발생할 때까지 실제로 출력되지 않습니다.

0

printfs/assert의 실제 순서가 예상 한 것과 다를 수 있으므로 최적화로 컴파일 중입니까?

관련 문제