【问题标题】:Has Boost something to the effect of fsync()?Boost 对 fsync() 有什么影响吗?
【发布时间】:2014-03-01 12:53:51
【问题描述】:

Boost library 是否提供类似于 fsync() 的内容?

动机:可移植到 POSIX 之外——例如以便在 Windows 上使用类似的功能。

【问题讨论】:

  • Windows 版本为 FlushFileBuffers()

标签: c++ boost filesystems fsync


【解决方案1】:

不,boost 没有这样的东西。正如 cmets 中的 brian beuning 所提到的,将操作系统同步到设备非常依赖于操作系统。

但是,您不必直接调用 Windows API,因为 Microsoft 的 C 运行时库确实有 fsync()。它已被命名为 _commit,并且您仍然可以继续使用文件描述符,而不必更改代码以使用 Windows HANDLE。

您可以按照以下方式介绍自己的可移植性助手:

ifdef __WINDOWS__
#include <io.h>
#define fsync  _commit
endif

【讨论】:

    猜你喜欢
    • 2014-10-05
    • 2012-05-31
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2014-10-12
    相关资源
    最近更新 更多