Современные операционные системы, такие как Linux, не используют содержимое файла для определения конца файла, они хранят длину файла в файловой системе и отслеживают положение файла, чтобы определить, доступно ли больше содержимого для чтения.
На самом деле текстовые файлы вообще не должны содержать нулевые байты. Они обычно заканчиваются маркером конца строки (\n
в Linux OS / X, CR
/ LF
в устаревших системах). Одним заметным исключением из этого правила является пустой файл.
При чтении с устройства, такого как окно терминала, ОС полагается на драйвер устройства для предоставления информации о конце файла, что в случаетерминал может быть сигнализирован пользователем, введя системную комбинацию клавиш, такую как Ctrl D в системах Unix и Ctrl Z Введите в операционных системах Microsoft.