缓存同步sync fsync fdatasync

3.缓存同步
缓存同步是是为了解决断电、计算机崩溃时数据丢失的问题。保证
缓存数据和写到磁盘上数据的一致性,该方法涉及3个函数: sync、fsync、fdatasync。
(1)sync(void)·将所有修改过的块缓冲区排人写队列,然后立即返回,不等待实际写
磁盘操作结束。数据是否写人磁盘并没有保障。
(2)fsync(int fd)将fd对应文件的缓冲区立即写人磁盘,并等待实际写磁盘操作结
束后返回,可用于数据库这样的应用程序’因为这种应用程序需要确保修改过的数据立即
写到磁盘上。
(3)fdatasync(int fd)类似于fsync,但只影响文件的数据部分,除数据外,fsync还
会同步更新文件属性(如文件大小、文件访问时间等。文件属性和文件内容是分开存储的’
写磁盘会涉及2次寻道),所以fdatasync比fsync执行速度更快。
具体如何应用呢?最好是调用多次write函数’再调用1次fsync函数,否则频繁调用
fsync函数,效率也会很低下。如果文件很大,就都写完’然后调用1次fsync函数’这样才
比较有意义。如果整个文件需要调用write函数10次才能写完’那么每写1次’就调用fsync
函数1次意义就不大,写10次后,再调用fsync函数1次,就非常合适代码示意如下:
write(..)
write(..)
write(..)
fsync()   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值