mingw 下的 fread() 无法正常工作
fread() under mingw not working properly
我用 GTK 在 Linux 下编写了一个 C 应用程序。有朋友想在Windows下测试一下。所以我们使用MinGW64编译它。
GUI 和应有的一切 looks/works。但是,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 个字节可用。函数returns87.
谁能给我解释一下?为什么它在 Linux 下有效但在 Windows 下无效?
读取这个文件的问题是,我用
打开了一个二进制文件
fopen("foo", "r");
这在 Linux 下运行良好。但是在 Windows 我不得不将其更改为
fopen("foo", "rb");
此解决方案适用于两个系统,并且现在的行为符合预期。
我用 GTK 在 Linux 下编写了一个 C 应用程序。有朋友想在Windows下测试一下。所以我们使用MinGW64编译它。
GUI 和应有的一切 looks/works。但是,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 个字节可用。函数returns87.
谁能给我解释一下?为什么它在 Linux 下有效但在 Windows 下无效?
读取这个文件的问题是,我用
打开了一个二进制文件fopen("foo", "r");
这在 Linux 下运行良好。但是在 Windows 我不得不将其更改为
fopen("foo", "rb");
此解决方案适用于两个系统,并且现在的行为符合预期。