Estoy tratando de entender cómo las conchas mueven el cursor de la pantalla (Moviéndose, ingrese las teclas de flecha y demás).
He estado haciendo muchas pruebas y no he encontrado ninguna llamada al sistema que permita el movimiento del cursor de la pantalla en una terminal. ¿Esto se hace usando extensiones de terminal específicas? Si es así, ¿hay alguna documentación sobre cómo se logra esto para, por ejemplo, xterm?
Esto me ha estado volviendo loco, cualquier luz que pueda arrojar sobre esto es apreciada.
Respuesta aceptada:
No existe tal llamada al sistema, o conjunto de llamadas al sistema. Todo se hace por convención.
En los viejos tiempos, cuando una "terminal" era un equipo grande y torpe conectado a una computadora a través de un cable, las "terminales inteligentes" hacían cosas como mover el cursor, dibujar una línea o rellenar un polígono con colores. . El terminal inteligente normalmente hacía esto a través de "secuencias de escape". Un programa emitía una secuencia especial de valores de bytes, generalmente comenzando con ASCII 0x1b, 'ESC', para mover un cursor, colorear una palabra o alguna cosa especial que no fuera imitar un teletipo.
Esa es la "convención". Hoy en día, una "terminal" es casi siempre solo una ventana entre muchas en una pantalla de mapa de bits, xterm, rxvt, etc. e interpretar esos bytes de acuerdo con una convención determinada. Acabo de escribir esto en una de mis ventanas xterm:
6 % echo $TERM
xterm
Pero sé que los xterms antiguos solían decir "vt100" en ese caso. Cualquier programa que "mueva el cursor" debe generar secuencias de escape para que la convención "xterm" mueva el cursor en una instancia de xterm.
Podrías hacer man curses
y man terminfo
para más información.
PD
La gente ha hecho sistemas completos de ventanas con secuencias de escape. Ver MGR como ejemplo.