fing()在mingw下工作不正常

时间:2018-06-04 10:03:52

标签: c fread mingw-w64 msys

我在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下运行?

1 个答案:

答案 0 :(得分:0)

从该文件读取的问题是,我用...打开了一个二进制文件

fopen("foo", "r");

这在Linux下工作正常。但是在Windows上,我不得不将其更改为

fopen("foo", "rb");

此解决方案在两个系统上都可以运行,并且现在可以按预期运行。