Итак, я пишу программу, которая сканирует файлы, которые прекрасно работают при компиляции с gcc и clang в Linux. Но в Windows, с компилятором Microsoft и MinGW, ложные срабатывания feof (). Цикл должен прерваться, как только он обнаружит инструкцию завершения типа файла, feof только там как отказоустойчивый и никогда не запускает правильные файлы в Linux…
У меня была программа, печатающая расположение указателя файла с помощью ftell (), и значения просто неверны. EOF всегда срабатывает при значениях 2 ^ n, которые на несколько порядков меньше, чем фактический размер файла ...
while(1)
{
...
//File is read here
//normally breaks before EOF-check
if(feof(in))
{
DEBUG_PRINTF("Reached EOF before IEND\n");
break;
}
}
EDIT:
открытие файла с "rb" вместо "r" решило проблему