Un carácter sustituto (␚) es un carácter de control que se utiliza en lugar de un carácter que se reconoce como inválido o erróneo, o que no se puede representar en un dispositivo determinado. También se utiliza como secuencia de escape en algunos lenguajes de programación .
En el juego de caracteres ASCII , este carácter está codificado por el número 26 ( 1A hexadecimal ). Los teclados estándar transmiten este código cuando las teclas Ctrly Zse presionan simultáneamente (Ctrl + Z, por convención que a menudo se describe como ^ Z). [1] Unicode codifica este carácter, pero recomienda que el carácter de reemplazo ( , U + FFFD) se utilice en su lugar para representar entradas no decodificables, cuando la codificación de salida sea compatible con él.
Usos
Fin del documento
Históricamente, bajo el monitor PDP-6 , [2] RT-11 , VMS y TOPS-10 , [3] y en los primeros sistemas operativos PC CP / M 1 y 2 (y derivados como MP / M ) era necesario explícitamente marque el final de un archivo (EOF) porque el sistema de archivos CP / M no pudo registrar el tamaño exacto del archivo por sí mismo; los archivos se asignaron en extensiones (registros) de un tamaño fijo, por lo general dejando algo de espacio asignado pero no utilizado al final de cada archivo. [4] [5] [6] [7] Este espacio adicional se llenó con 1A 16 caracteres ( hexadecimales ) en CP / M. Los sistemas de archivos CP / M extendidos utilizados por CP / M 3 y superiores (y derivados como Concurrent CP / M , Concurrent DOS y DOS Plus ) admitían archivos granulares de bytes, [8] [9] por lo que esto ya no era un requisito , pero se mantuvo como una convención (especialmente para archivos de texto ) para garantizar la compatibilidad con versiones anteriores.
En CP / M , 86-DOS , MS-DOS , PC DOS , DR-DOS y sus diversos derivados, el carácter SUB también se usó para indicar el final de un flujo de caracteres y, por lo tanto, se usó para terminar la entrada del usuario en una secuencia interactiva. ventana de línea de comandos (y como tal, se usa a menudo para finalizar la redirección de entrada de la consola, por ejemplo, según lo instigado por COPY CON: TYPEDTXT.TXT ).
Si bien ya no es técnicamente necesario para indicar el final de un archivo, muchos editores de texto y lenguajes de programa aún admiten esta convención, o se pueden configurar para insertar este carácter al final de un archivo al editar, o al menos tratarlos adecuadamente en el texto. archivos. En tales casos, a menudo se denomina EOF "suave", ya que no representa necesariamente el final físico del archivo, sino que es más un marcador que indica que "no hay datos útiles más allá de este punto". En realidad, pueden existir más datos más allá de este carácter hasta el final real de los datos en el sistema de archivos, por lo que puede usarse para ocultar el contenido del archivo cuando el archivo se ingresa en la consola o se abre en los editores. Muchos estándares de formato de archivo (por ejemplo, PNG o GIF ) incluyen el carácter SUB en sus encabezados para realizar precisamente esta función. Algunos formatos de archivo de texto modernos (por ejemplo, CSV-1203 [10] ) todavía recomiendan que se agregue un carácter EOF final como último carácter del archivo. Sin embargo, escribir Control+ Zno incrusta un carácter EOF en un archivo ni en DOS ni en Windows , ni las API de esos sistemas utilizan el carácter para indicar el final real de un archivo.
Algunos lenguajes de programación (por ejemplo, Visual Basic ) no leerán más allá de un EOF "suave" cuando se utilizan las primitivas de lectura de archivos de texto incorporadas (ENTRADA, ENTRADA DE LÍNEA, etc.), y se deben adoptar métodos alternativos, por ejemplo, abrir el archivo en modo binario o usar el Objeto del sistema de archivos para avanzar más allá.
El carácter 26 se usó para marcar "Fin de archivo" aunque ASCII llama a este carácter Sustituto y tiene otros caracteres para indicar "Fin de archivo". El número 28, que se llama " Separador de archivos ", también se ha utilizado para fines similares.
Otros usos
En los sistemas operativos Unix, este carácter se usa típicamente para suspender el proceso interactivo que se está ejecutando actualmente. [11] El proceso suspendido se puede reanudar en el modo de primer plano (interactivo), o se puede hacer que reanude la ejecución en el modo de fondo , o se puede finalizar . Cuando un usuario lo ingresa en su terminal de computadora , el proceso en primer plano que se está ejecutando actualmente recibe una señal de "parada de terminal" ( SIGTSTP ), que generalmente hace que el proceso suspenda su ejecución. Posteriormente, el usuario puede continuar con la ejecución del proceso utilizando el comando "primer plano" ( fg
) o el comando " segundo plano " ( bg
).
El informe Consideraciones de seguridad Unicode [12] recomienda este carácter como un reemplazo seguro para los caracteres no asignables durante la conversión del juego de caracteres.
En muchas GUI y aplicaciones Control+ Z( ⌘ Command+ Zen Mac OS) se puede usar para deshacer la última acción. En muchas aplicaciones, las acciones anteriores a la última también se pueden deshacer presionando Control+ Zvarias veces. Control+ Zfue una de las pocas secuencias de teclado elegidas por los diseñadores de programas de Xerox PARC para controlar la edición de texto . Presumiblemente, estas pulsaciones de teclas en particular se eligieron debido a su ubicación en un teclado QWERTY estándar , ya que las teclas Z (deshacer), X (cortar), C (copiar) y V (pegar) se encuentran juntas en el extremo izquierdo de la fila inferior. del teclado QWERTY estándar.
Representación
Representación ASCII y Unicode de "sustituto":
- Código octal: 32
- Codigo decimal: 26
- Código hexadecimal: 1A, U + 001A
- Símbolo mnemónico: SUB
- Valor binario: 11010
Ver también
- Códigos de control C0 y C1 ( ISO 646 )
- U + FFFD (carácter de reemplazo Unicode )
- Llave de acceso
- Control-C
- Control-G
- Control-V
- Control-X
- Control-\
- Atajo de teclado
- Lista de firmas de archivos
- tofu (desambiguación) § Computación y tecnología
Referencias
- ^ "Atajos de teclado para Windows" . Soporte de Microsoft . Microsoft . Consultado el 2 de junio de 2012 .
- ^ "Manual del sistema de multiprogramación PDP-6" (PDF) . Corporación de Equipos Digitales (DEC). 1965. pág. 43. Archivado (PDF) desde el original el 14 de julio de 2014 . Consultado el 10 de julio de 2014 .
- ^ "Manual de referencia de PDP-10, Libro 3, Comunicación con el monitor" (PDF) . Corporación de Equipos Digitales (DEC). 1969. p. 5-5. Archivado (PDF) desde el original el 15 de noviembre de 2011 . Consultado el 10 de julio de 2014 .
- ^ John C. Elliott (1998). Formatos de disco CP / M 1.4 . ( [1] )
- ^ John C. Elliott (1998). Formatos de disco CP / M 2.2 . ( [2] )
- ^ "2. Convenciones de llamadas al sistema operativo". Guía de interfaz CP / M 2.0 (PDF) (1 ed.). Pacific Grove, California, Estados Unidos: Investigación digital . 1979. p. 5. Archivado (PDF) desde el original el 28 de febrero de 2020 . Consultado el 28 de febrero de 2020 .
[...] El final de un archivo ASCII se indica mediante un carácter de control-Z (1AH) o un final real de archivo, devuelto por la operación de lectura CP / M. Sin embargo, los caracteres Control-Z incrustados en archivos de código de máquina (por ejemplo, archivos COM ) se ignoran y la condición de fin de archivo devuelta por CP / M se usa para terminar las operaciones de lectura. [...]
(56 páginas) - ^ Hogan, Thom (1982). "3. Comandos transitorios CP / M". Osborne CP / M User Guide - Para todos los usuarios de CP / M (2 ed.). Berkeley, California, Estados Unidos: A. Osborne / McGraw-Hill . pag. 74 . ISBN 0-931988-82-9. Consultado el 28 de febrero de 2020 .
[...] CP / M marca el final de un archivo ASCII colocando un carácter CONTROL-z en el archivo después del último carácter de datos. Si el archivo contiene un múltiplo exacto de 128 caracteres, en cuyo caso agregar CONTROL-Z desperdiciaría 127 caracteres, CP / M no lo hace. El uso del carácter CONTROL-Z como marcador de fin de archivo es posible porque CONTROL-z rara vez se usa como datos en archivos ASCII. En un archivo que no es ASCII, sin embargo, CONTROL-Z es tan probable que ocurra como cualquier otro carácter. Por lo tanto, no se puede utilizar como marcador de fin de archivo. CP / M utiliza un método diferente para marcar el final de un archivo no ASCII. CP / M asume que ha llegado al final del archivo cuando ha leído el último registro (unidad básica de espacio en disco) asignado al archivo. La entrada del directorio del disco para cada archivo contiene una lista de los registros del disco asignados a ese archivo. Este método se basa en el tamaño del archivo, más que en su contenido, para ubicar el final del archivo. [...]
[3] [4] - ^ John C. Elliott (1998). Formatos de disco CP / M 3.1 . ( [5] )
- ^ John C. Elliott (1998). Formatos de disco CP / M 4.1 . ( [6] )
- ^ Especificación de formato CSV-1203 Archivado 2016-05-16 en el archivo web portugués
- ^ "Referencia rápida: comandos de Unix" . IT Connect . Universidad de Washington . Consultado el 2 de junio de 2012 .
- ^ Informe de consideraciones de seguridad Unicode
Otras lecturas
- Estándar federal 1037C
- Ayuda: soporte multilingüe