Заменой символов (␚) представляет собой управляющий символ , который используется вместо символа , который признан недействительным или ошибочным, или которые не могут быть представлены на данном устройстве. Он также используется как escape-последовательность в некоторых языках программирования .
В наборе символов ASCII этот символ кодируется числом 26 ( 1A в шестнадцатеричном формате ). Стандартные клавиатуры передают этот код , когда Ctrlи Zклавиши нажаты одновременно (Ctrl + Z, в соответствии с соглашением часто описывается как ^ Z). [1] Unicode кодирует этот символ, но рекомендует вместо него использовать заменяющий символ ( , U + FFFD) для представления не декодируемых входных данных, если выходная кодировка совместима с ним.
Использует
Конец файла
Исторически сложилось так, что в мониторе PDP-6 [2] RT-11 , VMS и TOPS-10 , [3] и в ранних операционных системах PC / M 1 и 2 (и производных, таких как MP / M ) необходимо было явно отметить конец файла (EOF), потому что файловая система CP / M сама по себе не может записать точный размер файла; файлы распределялись экстентами (записями) фиксированного размера, обычно оставляя некоторое выделенное, но неиспользуемое пространство в конце каждого файла. [4] [5] [6] [7] Это дополнительное пространство было заполнено 1A 16 ( шестнадцатеричные ) символы под CP / M. Расширенные файловые системы CP / M, используемые CP / M 3 и выше (и производные, такие как Concurrent CP / M , Concurrent DOS и DOS Plus ), действительно поддерживали файлы с побайтовой разбивкой [8] [9], так что это больше не было требованием , но оставался условным (особенно для текстовых файлов ) для обеспечения обратной совместимости.
В CP / M , 86-DOS , MS-DOS , PC DOS , DR-DOS и их различных производных символ SUB также использовался для обозначения конца символьного потока и тем самым использовался для завершения пользовательского ввода в интерактивном режиме. окно командной строки (и, как таковое, часто используется для завершения перенаправления ввода консоли, например, инициированное COPY CON: TYPEDTXT.TXT ).
Хотя технически больше не требуется указывать конец файла, многие текстовые редакторы и языки программ по-прежнему поддерживают это соглашение или могут быть настроены для вставки этого символа в конец файла при редактировании или, по крайней мере, правильно справляться с ними в тексте. файлы. В таких случаях его часто называют «мягким» EOF, поскольку он не обязательно представляет физический конец файла, а скорее является маркером, указывающим, что «за пределами этого места нет полезных данных». В действительности, помимо этого символа может существовать больше данных, вплоть до фактического конца данных в файловой системе, поэтому его можно использовать для скрытия содержимого файла, когда файл вводится на консоли или открывается в редакторах. Многие стандарты форматов файлов (например, PNG или GIF ) включают символ SUB в свои заголовки для выполнения именно этой функции. Некоторые современные форматы текстовых файлов (например, CSV-1203 [10] ) по-прежнему рекомендуют добавлять завершающий символ EOF в качестве последнего символа в файле. Однако ввод Control+ Zне встраивает символ EOF в файл ни в DOS, ни в Windows , и API этих систем не используют этот символ для обозначения фактического конца файла.
Некоторые языки программирования (например, Visual Basic ) не будут читать после "мягкого" EOF при использовании встроенных примитивов чтения текстового файла (INPUT, LINE INPUT и т. Д.), И должны быть приняты альтернативные методы, например, открытие файла в двоичном режиме или используя объект файловой системы, чтобы продвинуться дальше.
Символ 26 использовался для обозначения «Конец файла», хотя ASCII называет этот символ Заместителем и имеет другие символы для обозначения «Конец файла». Номер 28, который называется « Разделитель файлов », также использовался для аналогичных целей.
Другое использование
В операционных системах Unix этот символ обычно используется для приостановки текущего интерактивного процесса. [11] Затем приостановленный процесс можно возобновить в режиме переднего плана (интерактивном), либо заставить его возобновить выполнение в фоновом режиме, либо завершить . Когда пользователь входит в систему на своем компьютерном терминале , в текущий запущенный процесс переднего плана отправляется сигнал «терминальная остановка» ( SIGTSTP ), который обычно заставляет процесс приостанавливать свое выполнение. Позже пользователь может продолжить выполнение процесса, используя команду «переднего плана» ( fg
) или команду « фон » ( bg
).
В отчете о соображениях безопасности Unicode [12] этот символ рекомендуется в качестве безопасной замены несопоставимых символов во время преобразования набора символов.
Во многих графических интерфейсах и приложениях Control+ Z( ⌘ Command+ Zв Mac OS) можно использовать для отмены последнего действия. Во многих приложениях предыдущие действия, чем последнее, также можно отменить, нажав Control+ Zнесколько раз. Control+ Zбыла одной из немногих клавиатурных последовательностей, выбранных разработчиками программы в Xerox PARC для управления редактированием текста . Предположительно, именно эти нажатия клавиш были выбраны из-за их расположения на стандартной QWERTY-клавиатуре , поскольку клавиши Z (отменить), X (вырезать), C (копировать) и V (вставить) расположены вместе в левом конце нижнего ряда. стандартной QWERTY-клавиатуры.
Представление
ASCII и Unicode представление «заменителя»:
- Восьмеричный код: 32
- Десятичный код: 26
- Шестнадцатеричный код: 1A, U + 001A
- Мнемонический символ: SUB
- Двоичное значение: 11010
Смотрите также
- Коды управления C0 и C1 ( ISO 646 )
- U + FFFD (символ замены Unicode )
- Ключ доступа
- Ctrl-C
- Control-G
- Control-V
- Control-X
- Контроль-\
- Сочетание клавиш
- Список подписей файлов
- тофу (значения) § Вычислительная техника и технологии
Рекомендации
- ^ «Сочетания клавиш для Windows» . Служба поддержки Microsoft . Microsoft . Проверено 2 июня 2012 .
- ^ "Руководство по системе мультипрограммирования PDP-6" (PDF) . Корпорация цифрового оборудования (DEC). 1965. с. 43. Архивировано (PDF) из оригинала на 2014-07-14 . Проверено 10 июля 2014 .
- ^ «Справочное руководство PDP-10, Книга 3, Связь с монитором» (PDF) . Корпорация цифрового оборудования (DEC). 1969. с. 5-5. Архивировано (PDF) из оригинала на 2011-11-15 . Проверено 10 июля 2014 .
- ^ Джон С. Эллиотт (1998). Форматы дисков CP / M 1.4 . ( [1] )
- ^ Джон С. Эллиотт (1998). Форматы дисков CP / M 2.2 . ( [2] )
- ^ «2. Соглашения о вызовах операционной системы». Руководство по интерфейсу CP / M 2.0 (PDF) (1-е изд.). Пасифик Гроув, Калифорния, США: Цифровые исследования . 1979. стр. 5. Архивировано (PDF) из оригинала 28.02.2020 . Проверено 28 февраля 2020 .
[...] Конец файла ASCII обозначается символом control-Z (1AH) или реальным концом файла, возвращаемым операцией чтения CP / M. Однако символы Control-Z, встроенные в файлы машинного кода (например, файлы COM ), игнорируются, и условие конца файла, возвращаемое CP / M, используется для завершения операций чтения. [...]
(56 страниц) - ^ Хоган, Том (1982). «3. Команды переходного процесса CP / M». Osborne CP / M User Guide - Для всех пользователей CP / M (2-е изд.). Беркли, Калифорния, США: А. Осборн / Макгроу-Хилл . п. 74 . ISBN 0-931988-82-9. Проверено 28 февраля 2020 .
[...] CP / M отмечает конец файла ASCII , помещая в файл символ CONTROL-z после последнего символа данных. Если файл содержит точное число, кратное 128 символам, и в этом случае добавление CONTROL-Z приведет к потере 127 символов, CP / M этого не сделает. Использование символа CONTROL-Z в качестве маркера конца файла возможно, поскольку CONTROL-z редко используется в качестве данных в файлах ASCII. Однако в файле, отличном от ASCII, CONTROL-Z встречается с такой же вероятностью, как и любой другой символ. Следовательно, его нельзя использовать в качестве маркера конца файла. CP / M использует другой метод для обозначения конца файла, отличного от ASCII. CP / M предполагает, что он достиг конца файла, когда он прочитал последнюю запись (базовую единицу дискового пространства), выделенную для файла. Запись каталога диска для каждого файла содержит список дисковых записей, выделенных для этого файла. Этот метод зависит от размера файла, а не от его содержимого, чтобы определить местонахождение конца файла. [...]
[3] [4] - ^ Джон С. Эллиотт (1998). Форматы дисков CP / M 3.1 . ( [5] )
- ^ Джон С. Эллиотт (1998). Форматы дисков CP / M 4.1 . ( [6] )
- ^ Спецификация формата CSV-1203. Архивировано 16 мая 2016 г. в Португальском веб-архиве.
- ^ «Краткий справочник: команды Unix» . IT Connect . Вашингтонский университет . Проверено 2 июня 2012 .
- ^ Отчет о соображениях безопасности Unicode
дальнейшее чтение
- Федеральный стандарт 1037C
- Справка: многоязычная поддержка