我希望我的程序打印
- 第一秒你好
- 第二秒你好
- 第三秒你好。
所以我写了下面的代码。 实际发生的事情是
- 第一秒 - 没有
- 第二秒 - 没有
- 第三秒 - HelloHelloHello
如何纠正?
实际发生的是我
void *myThreadFun(void *vargp)
{
while (1)
{
sleep(1);
printf("hello");
}
}
最佳答案
试试这个,您需要刷新流,可以通过 fflush
或添加 \n
来完成。
printf
并不总是调用 write
,因为系统调用的成本很高。它而是缓冲它并在需要时立即写入。通过添加 \n
或 fflush
使缓冲区每次都打印在 stdout 上。
void *myThreadFun(void *vargp)
{
while(1){
printf("hello\n");
sleep(1);
}
}
关于c - c 线程中的 Sleep(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45034244/