fsync

    fsync在LINUX中的意义在于同步数据到存储设备上.大多数块设备的数据都是通过缓存进行.当将数据写到文件上,通常将该数据由内核复制到缓存中,如果该缓存尚未写满,则不将其排入输出队列上,而是等待其写满或者当内核需要重用该缓存时,再将该缓存排入输出队列,同步到设备上.这样的策略的好处是减少了磁盘读写次数,但是不足的地方是降低了文件内容的更新速度,使其不能时刻同步到储存设备上.如果当系统发生故障时,这种机制很有可能导致了文件内容的丢失.因此,内核提供了fsync接口,用户可以根据自己的需要通过此接口更新数据到存储设备上.

    其原型为:

int(*fsync)(struct file *file,struct dentry *dentry,int datasync);

    在实际的使用场景上,字符设备一般不会用到此接口,而块设备是通用的block_fsync来实现此方法.


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值