mingw下的fread()无法正常工作

问题描述 投票:0回答:1

我已经用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下工作?

c fread mingw-w64 msys
1个回答
0
投票

读取该文件的问题是,我用以下命令打开了一个二进制文件

fopen("foo", "r");

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

fopen("foo", "rb");

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

© www.soinside.com 2019 - 2024. All rights reserved.