ofstream, fsync and data loss bugs
Mateusz Loskot
mateusz@loskot.net
Thu Mar 18 09:44:00 GMT 2010
Pavel Sanda wrote:
>> until standardized, that is no better than ext/stdio_filebuf - we
>> should investigate whether other implementations are *somehow*
>> trying to do something about it.
>
> I googled before asking here, but was able to find only hopeless
> questions about (o)fstream and fsync without response.
AFAICT, the file streams implementation shipped with
Microsoft Visual C++ does not perform any kind of low-level sync.
This behaviour can be accomplished with Windows specific file
flags [1] or flush [2] but neither of these is used in C++ streams,
also not in C file I/O functions.
It looks Microsoft assumes this features are used through Windows API
only. It seems to apply also to transactional NTFS, C++ library does not
make any use of it.
[1] http://support.microsoft.com/kb/99794
[2] FlushFileBuffers Function
Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
More information about the Libstdc++
mailing list