Это перевод Why do text files end in Ctrl+Z? Автор: Реймонд Чен.
Вообще-то, текстовые файлы не обязаны оканчиваться на Ctrl+Z, но это соглашение сохраняется в определённых кругах (хотя, к счастью, сегодня эти круги являются небольшими).
Эта история отправляет нас во времена CP/M - операционной системы, чьим последователем явилась MS-DOS (поскольку 8086 являлся наследником для 8080, то вполне естественно, что операционная система для 8086 будет рассматривать себя в качестве преемника для основной операционной системы на 8080).
В CP/M файлы хранились в "секторах" по 128 байт каждый. Если ваш файл имел размер в 64 байта, то он хранился в одном полном секторе. Проблема была в том, что операционная система хранила размер файла в секторах. Поэтому, если размер вашего файла не был кратен 128 байтам, то вам нужно было как-то указать, где был "настоящий" конец файла.
И тут на сцену выходит Ctrl+Z.
По договоренности, неиспользуемые байты в конце последнего сектора заполнялись символами Ctrl+Z. Согласно этой договорённости, если ваша программа читает файл, то она должна останавливаться, когда она встречает символ Ctrl+Z, т.к. это означает, что она теперь читает дополнение.
Для сохранения совместимости с CP/M MS-DOS продолжала использовать соглашение с Ctrl+Z. Поэтому, если вы переносили файлы со старой машины с CP/M на свой новый компьютер с MS-DOS, то они не оканчивались мусором, именно благодаря выполнению этого соглашения.
Реально же Ctrl+Z уже давно не нужен; MS-DOS хранит размеры файлов в байтах, а не в секторах. Но эта договорённость кое-где всё ещё сохраняется - например, в команде "COPY".
Комментариев нет:
Отправить комментарий
Можно использовать некоторые HTML-теги, например:
<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>
Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.
Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.
Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.
Примечание. Отправлять комментарии могут только участники этого блога.