2010-03-22 4 views
2

다음 코드를 실행할 때 출력이 없지만 이유가 해결되지 않습니다.fputs 및 루프 이상한 동작

# include <stdio.h> 

int main() 
{ 
    fputs("hello", stdout); 

    while (1); 

    return 0; 
} 

while 루프가 없으면 완벽하게 작동하지만 출력을 추가하자마자 출력됩니다. 반드시 루프를 시작하기 전에 출력해야합니까? 내 시스템에 그냥 있니? 어떤 종류의 완충제 등을 내뿜어 야합니까?

미리 감사드립니다.

답변

5

stdout을 플러시해야합니다. 개행 문자를 쓸 때 자동으로 발생합니다. 변경 fputs에 :

fputs("hello\n", stdout); 

또는에 :

fputs("hello", stdout); 
fflush(stdout); 
0

왜해야합니까? stdio 함수는 외부에서 무슨 일이 일어나고 있는지 알지 못하며, 무한 루프가오고 있다는 것을 확실히 알지 못할 것입니다. 버퍼는 가득 찼거나 명시 적으로 요청 된 경우에만 플러시됩니다.

0

fflush(stdout);

에 필요한