printf 후 sleep을 하면 sleep하기 전에 출력될까?
-> sleep한 후에 출력된다.
int main(int argc, char *argv[]) {
printf("hello!");
sleep(10);
}
10초 후에 hello!가 출력되는 것을 확인할 수 있다.
그 이유는 출력이 버퍼에 있고, 출력되지 않았기 때문이다.
fflush(stdout)을 추가하면 된다.
int main(int argc, char *argv[]) {
printf("hello!");
fflush(stdout);
sleep(10);
}
stdout 스트림에서 줄 단위로 버퍼에 저장한다고 한다.
https://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after-the-call-unless-a-newline-is-in-the-format-strin