我在文件管理器中使用_stati64()
,以便可以获得超过 4GB 的文件大小。
我的代码看起来很正常:
struct _stati64 buf;
_stati64(ep->d_name, &buf);
问题是,有时_stati64
工作正常,有时我得到巨大的值。我什至通过执行 print buf
检查了 gdb,但仍然得到错误的值,因此问题似乎不在于我的代码。
有人遇到过类似的事情吗?
最佳答案
您需要检查_stati64
的返回值。如果不为 0,您将不会获得有效结果。
如果您的实际代码确实检查了返回值,则错误很可能是您在 _stati64
返回后以某种方式破坏了结构。
最后一种可能性是,您得到的“坏值”实际上是有效且好的值。如果您使用获得的值更新问题,我将更新我的答案。
关于c - Mingw 和 _stati64(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016167/