浅谈printf函数在Linux环境下的缓存形式为行缓存

  众所周知printf函数为行缓存,换句话说在写printf的时候如果不在末尾加“\n”的话,printf不会在屏幕上打印出来,验证代码如下(注意:在Linux环境下编译运行;如果在Windows环境下就没问题,本人亲测):

 1 #include <unistd.h>
 2 #include <stdio.h>
 3 
 4 int main(){
 5     int a = 0;
 6     while(1){
 7         printf("%d",a++);
 8         sleep(1);
 9     }
10     return 0;
11 }

  

  如果要在屏幕输出,可以用两种方法:

  1、在printf中加入“\n”

#include <unistd.h>
#include <stdio.h>

int main(){
int a = 0;
while(1){
printf("%d\n",a++);
sleep(1);
}
return 0;
}

  2、加入fflush()函数

 1 #include <unistd.h>
 2 #include <stdio.h>
 3 
 4 int main(){
 5     int a = 0;
 6     while(1){
 7         printf("%d",a++);
 8         fflush(stdout);
 9         sleep(1);
10     }
11     return 0;
12 }

 

上一篇:java中的线程休眠


下一篇:[WCF]缺少一行代码引发的血案