가능한 중복 : 나는이 포럼에 대한 몇 가지 질문에 대답하려고했다
Why does printf not flush after the call unless a newline is in the format string?C에서 수면() 동작 ..?
, 나는 꽤 흥미로운 일이 발생했습니다. 이 완벽하게 작동
int main()
{
int print_val = -1;
while(1)
{
printf("%d \n", ++print_val);
sleep(1);
}
}
: 다음은 코드입니다. 이제 재미가 입력됩니다. 단지 라인 번호 7을 printf("%d ", ++print_val);
(그냥 줄 바꿈을 제거하십시오!)
로 변경하면 출력이 없습니다 ..!
그래서 아무도 나를 sleep() 함수의 동작을 이해하는 데 도움주세요 ..? 나는 fprintf()와 putc()로 바꾸려고 시도했기 때문에 sleep()이 아닌 printf()가 필요하다고 생각한다.
저는이 코드를 32 비트 우분투뿐만 아니라 32 비트 우분투 가상 머신에서 시도했습니다.
fflush (stdout)을 입력 해보십시오. printf 직후. – imreal
이것은 여러 번 대답되었습니다. \ n 버퍼를 플러시합니다. Printf는 기본적으로 버퍼 출력이며 실제 인쇄 시점을 예측할 수 없습니다. – fayyazkl
감사합니다. Nick, Rob Mayoff !! 'fflush'ing 생각하지 않았다. @robmayoff 이전 질문에 대한 귀하의 링크는 매우 유익했습니다. 감사. – Adorn