Articulo de referencia

Carácter sustituto

En los datos informáticos, un carácter de sustitución (␚) es un carácter de control que se utiliza para rellenar los datos transmitidos con el fin de enviarlos en bloques de tam...

En los datos informáticos, un carácter de sustitución (␚) es un carácter de control que se utiliza para rellenar los datos transmitidos con el fin de enviarlos en bloques de tamaño fijo, o para sustituir un carácter que se reconoce como inválido, erróneo o irrepresentable en un dispositivo determinado. También se utiliza como secuencia de escape en algunos lenguajes de programación .

En el conjunto de caracteres ASCII , este carácter se codifica con el número 26 ( 1A hexadecimal ). Los teclados estándar transmiten este código cuando se presionan simultáneamente las teclas CtrlCtrl +Z (a menudo documentado por convención como ^Z ) . [ 1 ] Unicode hereda este carácter de ASCII, pero recomienda que se utilice el carácter de reemplazo (�, U+FFFD) para representar entradas no decodificables, cuando la codificación de salida sea compatible con él.Z

Usos

Fin del archivo

Históricamente, bajo el monitor PDP-6 , [ 2 ] RT-11 , VMS y TOPS-10 , [ 3 ] y en los primeros sistemas operativos de PC CP/M 1 y 2 (y derivados como MP/M ) era necesario marcar explícitamente el final de un archivo (EOF) porque el sistema de archivos nativo no podía registrar el tamaño exacto del archivo por sí mismo; los archivos se asignaban en extensiones (registros) de un tamaño fijo, dejando normalmente algo de espacio asignado pero no utilizado al final de cada archivo. [ 4 ] [ 5 ] [ 6 ] [ 7 ] Este espacio adicional se llenaba con caracteres 1A 16 ( hexadecimal ) bajo CP/M. Los sistemas de archivos CP/M extendidos utilizados por CP/M 3 y versiones posteriores (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 utilizaba para indicar el final de una secuencia de caracteres y, por lo tanto, se utilizaba para finalizar la entrada del usuario en una ventana de línea de comandos interactiva (y como tal, a menudo se utilizaba para finalizar la redirección de entrada de la consola, por ejemplo, como lo instiga el comando ).COPY CON: TYPEDTXT.TXT

Aunque técnicamente ya no es necesario para indicar el final de un archivo, desde 2017, muchos editores de texto y lenguajes de programación aún admiten esta convención, o se pueden configurar para insertar este carácter al final de un archivo al editarlo, o al menos manejarlo correctamente en archivos de texto. En tales casos, a menudo se le denomina EOF "suave", ya que no representa necesariamente el final físico del archivo, sino que es más bien un marcador que indica que "no hay datos útiles más allá de este punto". En realidad, puede haber 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 se puede usar para ocultar el contenido del archivo cuando se ingresa en la consola o se abre en 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 agregar un carácter EOF al final como último carácter del archivo. Sin embargo, al escribir + no se inserta un carácter EOF en un archivo ni en MS-DOS ni en Windows , ni las API de esos sistemas utilizan ese carácter para indicar el final real de un archivo.ControlZ

Algunos lenguajes de programación (por ejemplo, Visual Basic ) no leen más allá de un EOF "suave" cuando se utilizan las primitivas de lectura de archivos de texto integradas (INPUT, LINE INPUT, etc.), y se deben adoptar métodos alternativos, por ejemplo, abrir el archivo en modo binario o utilizar el objeto del sistema de archivos para avanzar más allá de él.

El carácter 26 se utilizaba para marcar el "Fin de archivo", aunque ASCII lo denomina "Sustituto" y dispone de otros caracteres para indicar dicho fin. El carácter 28, llamado " Separador de archivo ", también se ha utilizado con fines similares.

Otros usos

En los sistemas operativos tipo Unix , este carácter se usa normalmente en los shells como una forma para que el usuario suspenda el proceso interactivo que se está ejecutando. [ 11 ] El proceso suspendido puede reanudarse en modo de primer plano (interactivo), o reanudarse en segundo plano , o terminarse . Cuando un usuario lo introduce en su terminal , se envía al proceso de primer plano que se está ejecutando una señal de "parada de terminal" ( SIGTSTP ), lo que generalmente hace que el proceso suspenda su ejecución. El usuario puede continuar la ejecución del proceso posteriormente usando el comando "foreground" ( fg) o el comando " backgroundbg " ( ).

El informe Consideraciones de seguridad de Unicode [ 12 ] recomienda este carácter como un reemplazo seguro para caracteres no asignables durante la conversión del conjunto de caracteres.

En muchas interfaces gráficas de usuario y aplicaciones, + ( + en macOS ) se puede usar para deshacer la última acción. En muchas aplicaciones, las acciones anteriores a la última también se pueden deshacer presionando + varias veces. + fue una de las pocas secuencias de teclado elegidas por los diseñadores de programas en Xerox PARC para controlar la edición de texto .ControlZ⌘ CommandZControlZControlZ

Representación

Representación ASCII y Unicode de "sustituto":

  • Código octal: 32
  • Código decimal: 26
  • Código hexadecimal: 1A, U+001A
  • Símbolo mnemotécnico: SUB
  • Valor binario: 11010

Véase también

Referencias

  1. "Atajos de teclado para Windows" . Soporte técnico de Microsoft . Microsoft . Consultado el 2 de junio de 2012 .
  2. "Tabla de características de dispositivos de E/S - Consolas o teletipos". Manual del sistema de multiprogramación PDP-6 (PDF) . Maynard, Massachusetts, EE. UU.: Digital Equipment Corporation (DEC). 1965. pág. 43. DEC-6-0-EX-SYS-UM-IP-PRE00. Archivado (PDF) del original el 14/07/2014 . Consultado el 10/07/2014 . (1+84+10 páginas)
  3. "5.1.1.1. Funciones dependientes del dispositivo - Modos de datos - Software dúplex completo A(ASCII) y AL(línea ASCII)". Manual de referencia PDP-10: Comunicación con el monitor - Monitores de tiempo compartido (PDF) . Vol. 3. Digital Equipment Corporation (DEC). 1969. págs. 5-3 – 5-6 [5-5 (431)]. Archivado (PDF) del original el 15/11/2011 . Recuperado el 10/07/2014 .  (207 páginas)
  4. Elliott, John C. (1998). "Formatos de disco CP/M 1.4" . Archivado del original el 14 de noviembre de 2020. Recuperado el 18 de noviembre de 2021 .
  5. Elliott, John C. (1998). "Formatos de disco CP/M 2.2" . Archivado del original el 5 de noviembre de 2020. Recuperado el 18 de noviembre de 2021 .
  6. "2. Convenciones de llamadas al sistema operativo". Guía de interfaz CP/M 2.0 (PDF) (1.ª ed.). Pacific Grove, California, EE. UU.: Digital Research . 1979. pág. 5. Archivado (PDF) del original el 28/02/2020 . Recuperado el 28/02/2020 . [...] El final de un archivo ASCII se indica mediante el carácter Control-Z (1AH) o un final de archivo real, devuelto por la operación de lectura de CP/M . Sin embargo, los caracteres Control-Z incrustados en archivos de código máquina (por ejemplo, archivos COM ) se ignoran, y la condición de final de archivo devuelta por CP/M se utiliza para terminar las operaciones de lectura. [...]  (56 páginas)
  7. Hogan, Thom (1982). "3. Comandos transitorios de CP/M". Guía del usuario de Osborne CP/M - Para todos los usuarios de CP/M (2.ª ed.). Berkeley, California, EE. UU.: A. Osborne/McGraw-Hill . pág . 74. ISBN   0-931988-82-9. Recuperado el 28-02-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. Sin embargo, en un archivo que no es ASCII, CONTROL-Z tiene la misma probabilidad de aparecer que cualquier otro carácter. Por lo tanto, no se puede usar como marcador de fin de archivo. CP/M usa un método diferente para marcar el final de un archivo que no es 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 de disco para cada archivo contiene una lista de los registros de disco asignados a ese archivo. Este método se basa en el tamaño del archivo, en lugar de en su contenido, para localizar el final del mismo. [...]
  8. Elliott, John C. (1998). "Formatos de disco CP/M 3.1" . Archivado del original el 26 de octubre de 2021. Recuperado el 18 de noviembre de 2021 .
  9. Elliott, John C. (1998). "Formatos de disco CP/M 4.1" . Archivado del original el 5 de noviembre de 2020. Recuperado el 18 de noviembre de 2021 .
  10. Especificación del formato CSV-1203 Archivado el 16/05/2016 en el Archivo Web Portugués
  11. "Referencia rápida: comandos Unix" . IT Connect . Universidad de Washington . Consultado el 2 de junio de 2012 .
  12. Informe sobre consideraciones de seguridad de Unicode

Lecturas adicionales