Сообщение об ошибке исходит от отладчика.Это указывает на то, что тот, кто создавал glibc для вашей системы, не добавил исходные файлы к информации об отладке.В результате, пошаговое выполнение функций системной библиотеки, таких как fgetc
, очень запутанно.Но это не зависит от вашей реальной проблемы.
Вы не можете смешивать функции файлового дескриптора, такие как open
, с функциями файлового потока, такими как fgetc
.Компилятор выведет предупреждение о несоответствии типов;Вы действительно не должны игнорировать это.
Что-то вроде этого должно исправить ошибку типа:
File *fp = fopen("out.txt", "r");
if (fp == NULL) {
perror("fopen");
return 1;
}
ch = fgetc(fp);
Если вы хотите продолжать использовать небуферизованный ввод / вывод и open
, вам придетсяиспользуйте функцию read
вместо fgetc
для чтения байтов.