【坑坑坑坑坑】fwrite没有把数据写到文件中???
2024-08-29 20:59:54
原文: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读写次数,加大性能消耗。
最新文章
- linux动态时钟探索
- 一些简单的PGSQL 操作
- Kotlin语法(其他)
- Artificial Intelligence Research Methodologies 人工智能研究方法
- TI CC254x BLE教程 2
- The ShortCuts in the ADT (to be continued)
- html5 canvas画板
- 在iptables防火墙下开启vsftpd的端口
- spoj 7258 Lexicographical Substring Search (后缀自动机)
- 使用Intent 将底层栈里所有的activity都清理掉
- 【UVA272】TEX Quotes
- 2017JAVA课程设计
- linux配置远程Git仓库
- ClearCase config_spec
- const修饰指针+volatile +restrict
- c#中内置委托
- ASM的一些小坑
- R语言画点状误差线
- daal utils printNumericTable
- jquery原理的简单分析,让你扒开jquery的小外套。
热门文章
- 【Excle数据透视表】如何创建非共享缓存的数据透视表
- Spring学习九----------Bean的配置之Bean的定义及作用域的注解实现
- hadoop生态系统学习之路(六)hive的简单使用
- centOS中修改语言环境
- mongo 的逻辑存储和物理存储
- Docker入门系列4:命令行小结
- 特权级概述(哥子就想知道CPU是如何验证特权级的)GATE+TSS
- C#多线程学习(六) 互斥对象
- python 基础 1.5 python数据类型(三)--元组常用方法示例
- HDU 1853 Cyclic Tour[有向环最小权值覆盖]