我的代码看起来接近这个:
- 大量使用普通 C++ IO 流插入的写入,例如
steram << "foo"; stream.flush();在某一点;_stat()在上面刷新之后立即调用MSVC C API 。
我观察到的是_stat()调用返回的尺寸不同于stream.tellp()较小的尺寸。
如果我stream在调用_stat()函数之前关闭它,它会返回正确的结果。我已经进入了_stat(),它用于FindFirstFileEx()获取尺寸。
这是一个已知的 Win32 API 怪癖吗?