Больше нет причины для маркера ^Z
EOF
(и давно это не было) - это удержание от CP / M, которое не поддерживает точную длину для размеров файлов в каталоге - Размеры файлов выражены числом 128-байтовых блоков, поэтому для завершения файла на границе не 128-байтовой необходимо использовать символ EOF.
Поскольку ранние версии MS-DOS находились под сильным влиянием CP / M (и Microsoft хотела, чтобы программы CP / M легко переносились), соглашение застряло.
Ваша программа должна открывать текстовые файлы с соответствующими атрибутами, чтобы ОС и / или язык выполнения сигнализировали об EOF, когда увидят ^Z
в случае, если вы столкнетесь с файлом, который использует соглашение. Но больше не нужно его писать.
Единственное возможное исключение - если у вас есть бинарный файл, но вы хотите поместить какой-то текст в его начало, затем ^Z
, затем ваши данные. Если кто-то выбросит его в консоль, он скажет что-то умное, а не извергнет мусор. Не так много причин для этого, но я видел, что это делается редко.
Из Википедии (http://en.wikipedia.org/wiki/CP/M):
Размер файла был указан как число
128-байтовых записей (напрямую
соответствующие секторам диска на
8-дюймовые диски) заняты файлом на
диск. Не было вообще
поддерживаемый способ указания точного байта
размеры файлов. Текущий размер файла
был сохранен в файле файла
блок управления (ФКБ) по операционному
система. Так как много приложений
программы (такие как текстовые редакторы) предпочитают
работать с файлами как с последовательностями
символы, а не как последовательности
записи, по соглашению текстовые файлы были
завершается символом control-Z
(ASCII SUB, шестнадцатеричный 1A).
Определение конца текстового файла
поэтому участвуют в изучении последнего
запись файла, чтобы найти
завершающий контроль-Z. Это также означало
что вставка символа control-Z
в середине файла обычно было
эффект усечения текста
содержимое файла.