【发布时间】:2023-03-11 00:09:01
【问题描述】:
我用 GTK 在 Linux 下编写了一个 C 应用程序。有朋友想在windows下测试一下。所以我们使用 MinGW64 编译它。
GUI 和一切看起来/工作正常。但是, fread() 调用不起作用。
read = fread(workbuff, sizeof(char), rec_data_length, bin_file);
if (read != rec_data_length) {
/* Here is some error handling */
}
rec_data_length 是 608。我确保文件没有损坏并且这 608 个字节可用。函数返回 87。
谁能给我解释一下?为什么 Linux 下可以运行,Windows 下不行?
【问题讨论】:
-
这是您必须从文件中读取的第一个、最后一个也是唯一一个调用吗?请尝试创建Minimal, Complete, and Verifiable Example 并展示给我们。
-
不,我使用了“r”。这不是唯一的 fread 调用。还有一些其他的电话。问题是。该文件有多个千兆字节大。用一个小文件就可以了。
-
是的。谢谢你们。将 fopen 的“r”更改为“rb”解决了这个问题