Boost library是否提供类似于 fsync()
的内容?
动机:在POSIX之外具有便携性-例如因此在Windows上使用类似的功能。
最佳答案
不,升压没有这种东西。就像评论中的brian beuning所提到的那样,将操作系统与设备同步在很大程度上取决于操作系统。
但是,您不必直接调用Windows API,因为Microsoft的C运行时库确实具有fsync()
。它被命名为 _commit
,并且可以继续使用文件描述符,而不必为了使用Windows HANDLE而必须更改代码,因此可以保持可移植性。
您可以按照以下方式介绍自己的可移植性助手:
ifdef __WINDOWS__
#include <io.h>
#define fsync _commit
endif
关于c++ - Boost是否具有fsync()的作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22114640/