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

本文转载自:http://blog.chinaunix.net/uid-30058258-id-5029847.html

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后缓冲区中的内容全部输出。

时间: 2024-10-13 04:46:43

linux中fflush函数和printf函数 【转】的相关文章

#include&lt;unistd.h&gt;存在linux中,含有系统服务的函数

#include<unistd.h> linux标准库#include <unistd.h>与windows的#include <windows.h>(C语言开发) #include    <unistd.h> 符号常量 是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数.write函数和getpid函数unistd.h在unix中类似于window中的windows.h! #ifdef WIN3

sprintf()函数 和 printf()函数

sprintf()函数 和 printf()函数 参考:C++ 中的sprintf和snprintf 函数的区别 - CSDN博客  http://blog.csdn.net/youbingchen/article/details/51980640 sprintf()函数 int sprintf(char *string,char *format,arg_list); 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),

scanf函数与printf函数用法

一开始学习就是用的cin.cout,所有习惯用这个,但是后来做题发现这样的输入方式有弊端,所以决定整理熟悉一下scanf函数与printf函数. 头文件 # include <stdio.h> scanf("输入控制符",输入参数) 在 scanf 的“输入参数”中,变量前面的取地址符&不要忘记. scanf 中双引号内,除了“输入控制符”外什么都不要写. “输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应. “输入控制符”的类型和变量所定义

Linux中的shell脚本编程——函数

概述: 本章节将总结while,for循环语句的特殊用法,在不同的场景当中,更能发挥其功能和价值.除此之外,还会介绍一种特殊的循环语句select语句,实现菜单的作用.最重要的是讲解shell脚本编程中函数的用法.这些内容都要熟练掌握. 一.循环语句的特殊用法: 1.while循环的特殊用法(遍历文件的每一行): □语法:while read line; do 循环体 done < /PATH/FROM/SOMEFILE □意义:依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将

Unix/Linux中的read和write函数

文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用.文件描述符是一个非负整数.当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符.当读或写一个文件时,使用open或create返回的文件描述符表示该文件,将其作为参数传给read或write函数. read函数 #include <unistd> ssize_t read(int filedes, void *buf, size_t nbytes); // 返回:若成功则返回读到的字节数,若已到文件末尾则返回0,若出错

scanf函数和printf函数

C程序实现输出和输入的 主要是printf函数 和 scanf函数,这两个函数是格式输入输出 格式声明由%和格式字符组成 如%d,%f 格式字符:  d格式符:用来输出一个有符号的十进制整数  c格式符:用来输出一个字符  s格式符:用来输出一个字符串 f格式符:用来输出实数(包括单精度,双精度,长双精度) 隐含输出六位小数  e格式符:用格式声明%e指定以指数形式输出实数  i格式符:作用与d格式符相同,一般习惯用%d,而少用%i.  o格式符:以八进制的形式输出  u格式符:用来输出无符号(

用Linux中man命令查询C函数

大家都知道在Unix/Linux中有个man命令,可以查询常用的命令,函数.可是对于我们这样只知道用"man 函数名"来查询的人来说,会遇到很多问题,比如: man read,我想看的是ANSI C中stdio的read函数原型和说明,没想到出来的确是BASH命令的说明,这是怎么回事呢? 原来read本身是man命令的一个参数,这样输入man就会以为你要使用read的功能,而不是查看read函数,那么要怎样查看read函数呢? 答案是使用: man 2 read 或者是man 3 re

Linux中exec()执行文件系列函数的使用说明

函数原型: 描述:    exec()系列函数使用新的进程映像替换当前进程映像.    工作方式没有什么差别, 只是参数传递的方式不同罢了. 说明:    1. 这6个函数可分为两大类: execl()系列 和 execv()系列.    2. `l' 是指把所有传递给程序的参数依次列(list)出来.        `v' 是指把所有参数放到容器(数组, vector)中再一次性传入.         不论是list出来还是vector them all, 参数的最后一个都必须为空指针((ch

linux中c语言编程main函数和参数

linux下main函数的的标准调用函数的标准形式 int main(int char,char *argv[]) 在main函数的两个参数中,argc必须是整型变量,其是命令行的参数的数目,argv必须是指向字符串的指针数组,这些指针分别指向各个的命令行参数的地址. 原文地址:https://www.cnblogs.com/zoutingrong/p/12250466.html