首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同步磁盘刷新/同步同步?

同步磁盘刷新/同步同步?
EN

Stack Overflow用户
提问于 2012-11-06 17:32:05
回答 1查看 785关注 0票数 3

在Solaris上执行同步磁盘刷新的最佳方法是什么?我想刷新所有磁盘,而不是一个文件。

在Solaris (与Linux相反)上的Sync()是异步工作的,我正在寻找同步sync() (完成后它会返回)

随之而来的问题:如何正确检查同步?我如何编写测试来表明它已经完成了?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-29 01:07:47

您可以运行:

代码语言:javascript
复制
/usr/sbin/lockfs -af

引用lockfs manual page

-f

在将fsflush运行到指定文件系统(或所有文件系统)的后备存储区时,强制同步刷新所有脏数据。它是一种比使用sync(1M)更可靠的方法,因为它在推送所有可能的数据之前不会返回。

如果你想用纯C语言来做这件事,你可以使用

代码语言:javascript
复制
  #include <sys/filio.h>
  ...    
  ioctl(fd, _FIOFFS, NULL);

其中fd是文件系统挂载点的文件描述符(来自/etc/mtab)。

但要注意,_FIOFFS是一个私有接口,因此可能会在没有通知的情况下随时消失。一种完全受支持且更健壮的方法是简单地将system("/usr/sbin/lockfs -af");行添加到代码中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13248124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档