2

Boost ライブラリは に似たものを提供しfsync()ますか?

動機: POSIX を超えて移植可能にすること。たとえば、Windows で同様の機能が使用されるようにすること。

4

1 に答える 1

1

いいえ、ブーストにはそのようなものはありません。コメントで brian beuning が述べたように、OS とデバイスの同期は OS に大きく依存します。

ただし、Microsoft の C ランタイム ライブラリにあるように、Windows API を直接呼び出す必要はありませんfsync()。という名前が付けられており_commit、Windows HANDLE で動作するようにコードを変更する必要がなく、引き続きファイル記述子を使用できるため、移植性は非常に高くなります。

次の行に沿って、独自の移植性ヘルパーを導入できます。

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