Boost ライブラリは に似たものを提供しfsync()
ますか?
動機: POSIX を超えて移植可能にすること。たとえば、Windows で同様の機能が使用されるようにすること。
Boost ライブラリは に似たものを提供しfsync()
ますか?
動機: POSIX を超えて移植可能にすること。たとえば、Windows で同様の機能が使用されるようにすること。
いいえ、ブーストにはそのようなものはありません。コメントで brian beuning が述べたように、OS とデバイスの同期は OS に大きく依存します。
ただし、Microsoft の C ランタイム ライブラリにあるように、Windows API を直接呼び出す必要はありませんfsync()
。という名前が付けられており_commit
、Windows HANDLE で動作するようにコードを変更する必要がなく、引き続きファイル記述子を使用できるため、移植性は非常に高くなります。
次の行に沿って、独自の移植性ヘルパーを導入できます。
ifdef __WINDOWS__
#include <io.h>
#define fsync _commit
endif