c - Mingw 和 _stati64()

标签 c mingw

我在文件管理器中使用_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/

相关文章:

gcc - 交叉 mingw 编译因未知伪操作而失败

file-io - MinGW中有fmemopen()吗

c - Eclipse CDT MinGW 工具链 : how to link with a library that does not begin with lib prefix?

c++ - 找到局部最大值的最大 4 个值

c++ - 当我们在c中使用fopen()搜索文件时,实现了哪种搜索技术

C++ 32 位与 64 位 float 限制

c - 如何设置 OpenMP?

c++ - 在 C++ 中使用库 "xtensor-blas"时出错

c - 使用 MSVC 从命令行构建 DLL(无入口点)

C:代码位置的高效编码