本文转载自:http://blog.chinaunix.net/uid-30058258-id-5029847.htmlhtml
printf是一个行缓冲函数
printf函数是标准函数,最终会调用到系统调用函数,printf函数会掉用到write系统函数;可是调用write函数须要知足一些条件件。
(1)缓冲区满
(2)遇到\n \r
(3)调用fflush函数来冲洗缓冲区
(4)scanf读取缓冲区的内容
(5)调用printf函数的进程或线程结束会调用fflush函数
检测缓冲区的大小为1024B。
fflush函数的做用:把文件流中未写出的数据所有写出去。函数
函数名: fflush
功 能:
清除读写缓冲区,须要当即把输出缓冲区的数据进行物理写入时
头文件:stdio.h
原型:int fflush(FILE *stream)
其中stream是要冲洗的流
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上
printf("。。。。。。。。。。。");后面加fflush(stdout);可提升打印效率
例子
for(i=1;i<=10;i++) { printf("%d ",i); sleep(1); } 这个不是每秒输出一个数字而是十秒后一次性输出十个数字!
在printf后加上fflush后缓冲区中的内容所有输出。