我有一个包含数千个文件的应用程序正在更新。应用程序需要定期将更改提交到磁盘,目前我正在调用fdatasync()
,这需要大量时间(分钟)。[减少正在写入的文件数量不是我的选择。]
同时,我注意到如果我从命令行运行sync
命令,它会明显更快地返回。从文档看来,它似乎可以保证所有挂起的写入都到达磁盘。
问题是:sync()
系统调用是否提供与多次调用相同(或更强)的持久性保证fdatasync()
?如果没有,有没有办法fsync()
一次调用多个文件描述符?
我有一个包含数千个文件的应用程序正在更新。应用程序需要定期将更改提交到磁盘,目前我正在调用fdatasync()
,这需要大量时间(分钟)。[减少正在写入的文件数量不是我的选择。]
同时,我注意到如果我从命令行运行sync
命令,它会明显更快地返回。从文档看来,它似乎可以保证所有挂起的写入都到达磁盘。
问题是:sync()
系统调用是否提供与多次调用相同(或更强)的持久性保证fdatasync()
?如果没有,有没有办法fsync()
一次调用多个文件描述符?