2

Boost 库是否提供类似的东西fsync()

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

4

1 回答 1

1

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

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

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

ifdef __WINDOWS__
#include <io.h>
#define fsync  _commit
endif
于 2014-03-03T08:23:57.813 回答