¿Qué códigos ASCII especiales todavía se están utilizando?

Los más comunes hoy en día son:

  • 0x00 null es el terminador de las cadenas de estilo C, porque los programadores de C son demasiado perezosos para recordar la longitud de sus cadenas, y preferirían escribir código que se bloquee si sus cadenas son demasiado largas.
  • Se emite una campana 0x07 para hacer que el terminal emita un pitido corto, con el fin de dirigir al usuario a alcanzar el botón de silencio.
  • El retroceso 0x08 ya no está realmente configurado como el carácter Retroceso en los terminales modernos. No obstante, se usa en algunos archivos de texto, como la salida de nroff , el programa que da formato a las páginas de manual para la visualización, para efectos de b␈bo␈ol␈ld␈d como b␈bo␈ol␈ld␈d ( negrita ) y _␈u_␈n_␈d_␈e_␈r_␈l_␈i_␈n_␈e ( subrayado ). Estos son traducidos por el less buscapersonas en los códigos apropiados para el terminal.
  • La pestaña horizontal 0x09 se usa para la sangría y la alineación, y para iniciar de manera confiable las guerras de llamas sobre la sangría y la alineación.
  • El avance de línea 0x0A se usa para terminar líneas en archivos de texto UNIX y para mostrar basura en sistemas Mac OS y Windows.
  • La fuente de información 0x0C se usa en algunos archivos de texto, incluidos los RFC de Internet (documentos IETF) y la fuente GNU más antigua, para marcar un salto de página. Se muestra como basura.
  • El retorno de carro 0x0D se usa para líneas finales en archivos de texto de Mac OS, para mostrar basura en sistemas Windows y para sobrescribir la línea anterior en sistemas UNIX. Los archivos de texto de Windows terminan las líneas con dos caracteres, el par de retorno de carro + avance de línea. Lo que les pase a estos personajes en tránsito durante la entrada y salida de la terminal es mucho más complicado, así que dejaré esa historia para otro día.
  • Escape 0x1B es el personaje de Escape. En la entrada del terminal, se usa para prefijar caracteres escritos con Meta (Alt), y como parte de la representación de caracteres que no tienen su propio lugar en ASCII, como las teclas de flecha ␛[A (↑), ␛[B (↓), ␛[C (→), ␛[D (←). En la salida del terminal, se utiliza para iniciar secuencias para controlar el formato, el color, la posición y otras características del terminal.
  • La eliminación 0x7F generalmente se configura como el carácter de Retroceso en estos días. ¿Cuál es el carácter Eliminar, entonces? Es ␛[3~ , obviamente.

Todos los códigos de control se utilizan para representar la entrada del terminal con la tecla Ctrl:

  • 0x00 es Ctrl- @ o Ctrl-2 o Ctrl-Space o Ctrl-`;
  • 0x01 a 0x1A son Ctrl-A a Ctrl-Z;
  • 0x1B es Ctrl- [o Ctrl-3 o Ctrl- {;
  • 0x1C es Ctrl- o Ctrl-4 o Ctrl- |;
  • 0x1D es Ctrl-] o Ctrl-5 o Ctrl-};
  • 0x1E es Ctrl- ^ o Ctrl-6 o Ctrl- ~;
  • 0x1F es Ctrl-_ o Ctrl-7 o Ctrl- /.
  • 0x7F es Ctrl-?

Algunos de ellos tienen un significado especial para el TTY (dependiendo de su modo), como 0x04 (Ctrl-D) para el final de la entrada; vea mi respuesta a ¿Cuáles son todos los atajos de teclado para enviar señales desde el shell?

Muchos de los caracteres de control que pueden parecer tontos u obsoletos, como BEL y NUL, se usan con frecuencia en los sistemas operativos de la familia UNIX, como Linux, Solaris, BSD, etc. Se usan para escribir comandos de terminal y para enviar comandos desde un programa a otro Dependiendo de los programas que ejecute, algunos o todos los caracteres de control todavía pueden usarse con su intención original, lo que demuestra que un estándar bastante antiguo perdura y tiene importancia hoy en día.

Un entorno de programa moderno a menudo incluirá una combinación de programas muy tradicionales que dependen en gran medida de cosas como caracteres de control, y servicios web más modernos o servidores de aplicaciones que realizan todo su trabajo enviando y recibiendo solicitudes y respuestas HTTP. A veces los programas tradicionales están ahí porque no hay razón para reemplazarlos. Por ejemplo, muchos sistemas se inician utilizando scripts de shell, que son muy sensibles a los caracteres de control, pero una vez que se inician, las cosas se entregan a los scripts de Java o PHP, que pueden no tener una razón para tratar con muchos de ellos, aparte de El carácter de nueva línea.

¿Quieres decir cosas como la pestaña y el retorno de carro? Sí, esos todavía parecen útiles.

^ d – final del archivo.

^ s / ^ q todavía se aplica para detener / iniciar la transmisión de datos a un terminal.

… Estoy seguro de que hay más. 🙂