Понимание неопределенного поведения для двоичного потока, используя fseek (file, 0, SEEK_END) с файлом

В спецификации C есть интересная сноска (# 268 C11dr §7.21.3 9)

«Установка индикатора положения файла в конец файла, как сfseek(file, 0, SEEK_END), имеет неопределенное поведение для двоичного потока (из-за возможных завершающих нулевых символов) или для любого потока с кодированием, зависящим от состояния, которое не обязательно заканчивается в начальном состоянии сдвига. "

Применимо ли это к двоичным потокам, читающим файл? (как с физического устройства)

IMO, двоичный файл на диске - это просто море байтов. Мне кажется, что двоичный файл не может иметь кодировку, зависящую от состояния, так как этодвоичный файл. Я размышляю над понятием «двоичные широко-ориентированные потоки», и если это вообще может применяться к дисковому вводу-выводу.

Я вижу это призваниеfseek(file, 0, SEEK_END) в последовательном потоке, как COM-порт или, возможно,stdin может не достичь истинного конца, какконец еще предстоит определить. Таким образом сужение вопроса к физическим файлам.

[править] Ответ: Беспокойство у пожилых (возможно, до конца 1980-х). В настоящее время в 2014 году Windows, POSIT-специфичные и не экзотические другие: не проблема.

@Shafik Yaghmour дает хорошую ссылку наИспользование fseek и ftell для определения размера файла имеет уязвимость?, Там @ Джерри Коффин обсуждаетCP / M поскольку двоичные файлы не всегда имеют точную длину. (128-байтовые записи на вики).

Спасибо @Keith Thompson answer за суть ответа.

Вместе это объясняет комментарий спецификаций "(из-за возможных завершающих нулевых символов)".

Ответы на вопрос(1)

Ваш ответ на вопрос