FATFS每一次f_write之后必须f_close不然数据保存不了?

2019-07-20 19:06发布

FATFS每一次f_write之后必须f_close不然数据保存不了?我必须要关闭文件之后才能保存,否则就保存不了,这个在复制一个TXT里面的内容到另外一个TXT里面的时候非常麻烦,频繁的开启关闭TXT,请问问题出在什么地方?应该怎么破?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
mack13013
1楼-- · 2019-07-20 21:24
本帖最后由 mack13013 于 2016-11-4 05:31 编辑

一般的文件写入操作都是带缓存的,MFC中的CFile::Write之后还要CFile::Flush一下,数据才会确定被写到存储器上。
我估计FatFs应该也有个类似的机制吧,试试f_sync函数吧,简单看了一下FatFs的API,f_sync就是类似功能。
如果不是这个API,那你再读一下FatFs的说明或者源码找一下,应该有一个类似功能的函数的。



其实还有个简单办法的,那就是调试一下那个f_close,一般关闭文件的时候,都会把缓存数据刷新到存储器上的,
里面应该就有直接调用的f_sync或者什么其他flush函数的。

慢慢炖
2楼-- · 2019-07-20 21:54
确诊为未添加f_sync函数导致,给你32个赞!

一周热门 更多>