我已经用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下工作?
读取该文件的问题是,我用以下命令打开了一个二进制文件
fopen("foo", "r");
这在Linux下工作正常。但是在Windows上,我不得不将其更改为
fopen("foo", "rb");
此解决方案在两个系统上均有效,并且现在可以按预期方式运行。