我用的Ubuntu14.04,想写了一个延迟程序,具体是延迟一秒输出一个 '.' :
for(i =0;i<10;i++)
{sleep(1);printf(".");}
但是效果是先延迟10秒再输出10个‘.’要的效果是每一秒输出一个'.'
http://blog.chinaunix.net/uid-722885-id-124909.html
LINUX上是在最后一起打印的,printf是在手动刷新缓冲区和缓冲区满,或遇到换行'\n',或程序正常结束时才会打印
用printf()输出时是先输出到缓冲区,然后再从缓冲区送到屏幕上。
解决方法: 使用fflush(stdout)强制刷新。