linux中fflush函数和printf函数 【转】

本文转载自: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后缓冲区中的内容所有输出。
相关文章
相关标签/搜索