您尚未登录。

楼主 #1 2018-07-17 20:25:50

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

为什么fsync并不能保证写入到磁盘?

如题,我在arm linux中将数据保存到外部sd卡,保存成功后(操作无返回错误),断电,检查sd卡数据。

发现sd卡容量发生了变化,但是sd卡中并无文件。。。隐藏文件也没有。。。

操作姿势如下:
     fopen()
     fwrite()
     fflush()
     fd = fileno()
     fsync(fd)
断电 
     

没有找出什么问题,我自己尝试了下调用sync(),发现还是比较可靠,能解决问题,只是sync操作比较费时。
但是为什么fsync无效啊??  教科书不都是这么用的吗?

离线

楼主 #3 2018-07-17 20:51:53

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: 为什么fsync并不能保证写入到磁盘?

晕哥 说:

fflush(文件句柄)

这个试一试。


我的里面有,然并卵...

离线

楼主 #5 2018-07-18 09:06:05

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: 为什么fsync并不能保证写入到磁盘?

我使用的是c库的sync函数,不是system("sync"),  不过应该是大同小异。 

用的ti的达芬奇,内核有点老,2.6.37的,不知道有没有关系。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn