我在Linux下使用GTK编写了一个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下运行?
答案 0 :(得分:0)
从该文件读取的问题是,我用...打开了一个二进制文件
fopen("foo", "r");
这在Linux下工作正常。但是在Windows上,我不得不将其更改为
fopen("foo", "rb");
此解决方案在两个系统上都可以运行,并且现在可以按预期运行。