"Как указано выше, обнаружив конец файла, функция getc() возвращает константу EOF. Однако это не самый лучший способ распознавания конца файла. Во-первых, операционная система может работать как с текстовыми, так и с бинарными файлами. Если файл открыт для бинарного ввода, из него может быть считано целое число, равное константе EOF. Следовательно, конец файла, распознаваемый функцией getc(), может не совпадать с реальным концом файла."
Я, наверное, чего-то не понимаю. Как можно считать из файла байт со значением EOF?
Про знаковое расширение у signed char я знаю, но если оно срабатывает на байтах, читаемых из файла, то это тяжелая проблема билиотеки, подлежащая срочному лечению.
Так о чём это он?
Я, наверное, чего-то не понимаю. Как можно считать из файла байт со значением EOF?
Про знаковое расширение у signed char я знаю, но если оно срабатывает на байтах, читаемых из файла, то это тяжелая проблема билиотеки, подлежащая срочному лечению.
Так о чём это он?
Tags:
no subject
no subject
no subject
:)
И он в самом деле бывает в файлах.
В текстовых - в конце. В бинарных - где угодно и сколько угодно.
no subject
Хотя, если придираться, то это getc() может вернуть EOF, прочитав из файла ^Z.
А "считать из файла целое число, равное константе EOF" таки нельзя.
no subject
no subject
Вообще, если читать по байту - вполне себе можно прочитать и еоф. ну, байт, целое число - какая разница :))