原文:https://blog.csdn.net/kuaidfkuai/article/details/45918025

《unix环境高级编程》中介绍标准IO:

标准IO流操作读写普通文件是使用全缓冲的,默认缓冲区长度是该文件系统优先选用的IO长度(一般是4kB)。

因此当数据长度没有填满缓冲区时,在文件中是无法看到的。

解决方法有三种:

1. fflush()。

2.fclose()。

3. 函数setvbuf()修改stream(流)的缓冲区大小。

函数setvbuf 用法:

#include <stdio.h>

int setvbuf(FILE *stream, char *buf, int mode , size_t size);

stream:文件句柄。

buf: 替换默认缓冲区。

size:buf的大小。

mode:设置模式,

_IOFBF, 表示完全缓冲

_IOLBF, 表示线缓冲

_IONBF, 表示无缓存

注意:使用fflush或setvbuf,都会增加IO读写次数,加大性能消耗。

最新文章

  1. linux动态时钟探索
  2. 一些简单的PGSQL 操作
  3. Kotlin语法(其他)
  4. Artificial Intelligence Research Methodologies 人工智能研究方法
  5. TI CC254x BLE教程 2
  6. The ShortCuts in the ADT (to be continued)
  7. html5 canvas画板
  8. 在iptables防火墙下开启vsftpd的端口
  9. spoj 7258 Lexicographical Substring Search (后缀自动机)
  10. 使用Intent 将底层栈里所有的activity都清理掉
  11. 【UVA272】TEX Quotes
  12. 2017JAVA课程设计
  13. linux配置远程Git仓库
  14. ClearCase config_spec
  15. const修饰指针+volatile +restrict
  16. c#中内置委托
  17. ASM的一些小坑
  18. R语言画点状误差线
  19. daal utils printNumericTable
  20. jquery原理的简单分析,让你扒开jquery的小外套。

热门文章

  1. 【Excle数据透视表】如何创建非共享缓存的数据透视表
  2. Spring学习九----------Bean的配置之Bean的定义及作用域的注解实现
  3. hadoop生态系统学习之路(六)hive的简单使用
  4. centOS中修改语言环境
  5. mongo 的逻辑存储和物理存储
  6. Docker入门系列4:命令行小结
  7. 特权级概述(哥子就想知道CPU是如何验证特权级的)GATE+TSS
  8. C#多线程学习(六) 互斥对象
  9. python 基础 1.5 python数据类型(三)--元组常用方法示例
  10. HDU 1853 Cyclic Tour[有向环最小权值覆盖]