Размер буфера файла слишком мал - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь создать небольшую программу на C, которая читает файл и вычисляет CRC по содержимому.Я создал программу в NetBeans и в IDE все работает.Когда я собираю проект с GCC и запускаю сгенерированный exe, программа завершается ошибкой при чтении файла.Файл 1,3 Мб.

При чтении в файле я в конечном итоге получаю сообщение об ошибке «Внутренняя ошибка: 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);
}

Я вижу новую проблему.При чтении в моем файле через IDE NetBeans все работает нормально.Когда я компилирую программу из командной строки с

g++ main.c crc_calculator.c crc_calculator.h -o crc

, я получаю файл crc.exe.Запуск этого будет читать в моем файле, но сообщит, что было прочитано в два раза больше строк, чем фактически существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...