我希望我的程序打印
所以我写了下面的代码。 实际发生的是
如何纠正?
实际发生的事情是我
void *myThreadFun(void *vargp)
{
while (1)
{
sleep(1);
printf("hello");
}
}
答案 0 :(得分:4)
试试这个,您需要刷新流,可以通过fflush
或添加\n
来完成。
printf
并不总是因性能原因而调用write
。它会缓冲它并在需要时立即写入。通过添加,\n
或fflush
使缓冲区每次都在stdout上打印。
void *myThreadFun(void *vargp)
{
while(1){
printf("hello\n");
sleep(1);
}
}
答案 1 :(得分:2)
C stdio
缓冲,支持三种不同的模式:
您始终可以使用fflush()
强制缓冲区刷新。因此,在fflush(stdout)
之后添加printf()
即可。
由于stdout
在行缓冲模式下默认为 ,您也可以在字符串中附加\n
(换行符),换行将触发缓冲区刷新。