stringtranslate.com

Personaje sustituto

En los datos informáticos, un carácter sustituto (␚) 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 a 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 está codificado por el número 26 ( 1A hexadecimal ). Los teclados estándar transmiten este código cuando se presionan simultáneamente las teclas Ctrly ( Ctrl+Z , a menudo documentado por convención como ^Z ) . [1] Unicode hereda este carácter de ASCII, pero recomienda que se use el carácter de reemplazo (�, U+FFFD) en su lugar 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 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 típicamente algo de espacio asignado pero sin usar al final de cada archivo. [4] [5] [6] [7] Este espacio extra se llenaba con 1A 16 ( hexadecimal ) caracteres bajo 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 permaneció como una convención (especialmente para archivos de texto ) para asegurar 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 usaba para indicar el final de un flujo de caracteres, [ cita requerida ] y, por lo tanto, se usaba para finalizar la entrada del usuario en una ventana de línea de comandos interactiva (y, como tal, a menudo se usaba para finalizar la redirección de entrada de la consola, por ejemplo, como lo iniciaba el comando COPY CON: TYPEDTXT.TXT).

Aunque técnicamente ya no es necesario para indicar el final de un archivo, a partir de 2017, muchos editores de texto [ ¿cuáles? ] 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 lidiar adecuadamente con ellos en archivos de texto. [ cita requerida ] En tales casos, a menudo se lo 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 se puede usar para ocultar el contenido del archivo cuando el archivo 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 archivos de texto modernos (por ejemplo, CSV-1203 [10] ) aún recomiendan que se agregue un carácter EOF final como el último carácter del archivo. Sin embargo, escribir + no 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.ControlZ

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 integradas (INPUT, LINE INPUT, etc.) [ cita necesaria ] y se deben adoptar métodos alternativos, por ejemplo, abriendo el archivo en modo binario o utilizando el objeto del sistema de archivos para avanzar más allá de él.

El carácter 26 se utilizó para marcar el "Fin de archivo", aunque ASCII lo denomina "Sustituto" y tiene otros caracteres para indicar el "Fin de archivo". El número 28, que se denomina " Separador de archivos ", también se ha utilizado con fines similares.

Otros usos

En sistemas operativos tipo Unix , este carácter se usa típicamente en shells como una forma para que el usuario suspenda el proceso interactivo que se está ejecutando actualmente. [11] El proceso suspendido puede luego reanudarse en modo de primer plano (interactivo), o puede hacerse que reanude la ejecución en modo de segundo plano , o puede terminarse . 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. El usuario puede continuar más tarde la ejecución del proceso usando el comando "foreground" ( fg) o el comando " backgroundbg " ( ).

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

En muchas GUI y aplicaciones, se puede usar + ( + en macOS ) 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":

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 IO - 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) desde el original el 14 de julio de 2014. Consultado el 10 de julio de 2014 .(1+84+10 páginas)
  3. ^ "5.1.1.1. Funciones dependientes del dispositivo - Modos de datos - Software full-duplex 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) desde el original el 2011-11-15 . Consultado el 2014-07-10 .(207 páginas)
  4. ^ Elliott, John C. (1998). "Formatos de disco CP/M 1.4". Archivado desde el original el 14 de noviembre de 2020. Consultado el 18 de noviembre de 2021 .
  5. ^ Elliott, John C. (1998). "Formatos de disco CP/M 2.2". Archivado desde el original el 5 de noviembre de 2020. Consultado el 18 de noviembre de 2021 .
  6. ^ "2. Convenciones de llamadas del 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) 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 Ctrl-Z (1AH) o un final de archivo real, devuelto por la operación de lectura de CP/M . Sin embargo, los caracteres Ctrl-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 utiliza para finalizar las operaciones de lectura. [...](56 páginas)
  7. ^ Hogan, Thom (1982). "3. Comandos transitorios de CP/M". Guía del usuario de CP/M de Osborne: para todos los usuarios de CP/M (2.ª edición). Berkeley, California, EE. UU.: A. Osborne/McGraw-Hill . pág. 74. ISBN 0-931988-82-9. Recuperado 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 el 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, es tan probable que CONTROL-Z aparezca como 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 de 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 su contenido, para localizar el final del archivo. [...][1][2]
  8. ^ Elliott, John C. (1998). "Formatos de disco CP/M 3.1". Archivado desde el original el 26 de octubre de 2021. Consultado el 18 de noviembre de 2021 .
  9. ^ Elliott, John C. (1998). "Formatos de disco CP/M 4.1". Archivado desde el original el 5 de noviembre de 2020. Consultado el 18 de noviembre de 2021 .
  10. ^ Especificación de formato CSV-1203 Archivado el 16 de mayo de 2016 en el Archivo Web Portugués
  11. ^ "Referencia rápida: comandos de Unix". IT Connect . Universidad de Washington . Consultado el 2 de junio de 2012 .
  12. ^ Informe sobre consideraciones de seguridad de Unicode

Lectura adicional