最近在学习linux的系统编程,写了一个小程序,一直没反应,还以为sleep把程序挂起 。如下:
#include <unistd.h>
#include<stdio.h>
int main(int argc, char *argv[])
{
while(1)
{
printf(" hello ");
sleep(1);
}
return 0;
}
原因: printf的缓冲作用,所以会出现输出的延时,甚至长时间不输出,
解决办法:1,关掉printf的缓存setvbuf(stdout,NULL,_IONBF,0);
2,强制刷新 fflush(stdout);
3,直接加个换行符\n;