Ли Boost библиотека предоставить что-то похожее на fsync()
?
Мотивация: быть портативным вне POSIX — например, такой, что в Windows используется аналогичная функция.
Нет, у повышения нет такой вещи. И как отметил Брайан Бьюнинг в комментариях, синхронизация ОС с устройством очень сильно зависит от ОС.
Однако вам не нужно напрямую вызывать API-интерфейсы Windows, поскольку библиотека времени выполнения Microsoft C имеет fsync()
, Было названо _commit
, и вы остаетесь достаточно переносимым, поскольку вы можете продолжать работать с файловыми дескрипторами вместо того, чтобы менять код для работы с Windows HANDLE.
Вы можете представить свой собственный помощник по переносимости в соответствии с:
ifdef __WINDOWS__
#include <io.h>
#define fsync _commit
endif
Других решений пока нет …