文件缓冲区大小太小

时间:2018-12-28 15:38:13

标签: c file

我试图用C编写一个小程序,该程序读取文件并计算内容的CRC。我在netbeans中创建了该程序,并且在IDE中一切正常。当我使用GCC构建项目并运行生成的exe时,读取文件时程序失败。文件为1.3 Mb。

读取文件时,我最终收到错误消息“内部错误:TP_NUM_W_BUFS太小:50”

我读取的代码非常简单,它只进行很少的行处理。

while (fgets(line, HEX_LINE_LENGTH, fp))
{
        int len = strlen(line);
        line[len] = line[len-1];
        line[len-1] = '\r';
        memcpy(&hex_lines[num_lines], line, HEX_LINE_LENGTH);
        num_lines++;
        printf("%s\n", line);
        memset(line, 0, HEX_LINE_LENGTH);
}

我看到了一个新问题。通过netbeans IDE读取文件时,一切正常。当我使用

从命令行编译程序时
g++ main.c crc_calculator.c crc_calculator.h -o crc

我得到一个crc.exe文件。运行此命令将读取我的文件,但将报告已读取的行数是实际行数的两倍。

0 个答案:

没有答案