Termcap

Ir a: navegación, búsqueda de

Termcap (términoinal casquillocapacidad) es un software Biblioteca y base de datos utilizado en Unix-like computadoras. Permite a programas para usar pantalla terminales de computadora de manera independiente del dispositivo, que simplifica considerablemente el proceso de escritura portable modo texto aplicaciones. Bill Joy escribió la primera biblioteca termcap en 1978[1][2] para el Berkeley Unix Sistema operativo; desde entonces se ha portado a la mayoría de Unix y entornos Unix-like. Diseño de Joy, según informes, fue influenciado por el diseño del almacenamiento de datos terminal en el anterior Sistema de tiempo compartido incompatible.[3]

Una base de datos termcap puede describir el capacidades cientos de visualización diferentes terminales. Esto permite que los programas que pantalla basados en caracteres salida, independientemente del tipo de terminal. En la pantalla los editores de texto como vi y Emacs son ejemplos de programas que pueden utilizar termcap. Otros programas se enumeran en el Termcap categoría.

Ejemplos de lo que describe la base de datos:

  • ¿Cuántas columnas amplia la pantalla es
  • la cadena a enviar mover el cursor a una posición arbitraria (incluyendo cómo codificar los números de fila y columna)
  • Cómo desplazarse en la pantalla de una o varias líneas
  • ¿Cuánto relleno es necesario para una operación tal desplazamiento.

Contenido

  • 1 Modelo de datos
    • 1.1 Índices
    • 1.2 Valores de datos
    • 1.3 Jerarquía
  • 2 Modelo de almacenamiento
    • 2.1 Variable de entorno
    • 2.2 Archivo plano
    • 2.3 Base de datos de hash
  • 3 Limitaciones y extensiones
  • 4 Características obsoletas
  • 5 Véase también
  • 6 Referencias
  • 7 Enlaces externos

Modelo de datos

Bases de datos termcap consisten en una o más descripciones de terminales.

Índices

Cada descripción debe contener la canónica nombre de la terminal. También puede contener uno o varios alias para el nombre de la terminal. El nombre canónico o alias son las claves de que la biblioteca busca en la base de datos termcap.

Valores de datos

La descripción contiene una o más funciones, que tienen nombres convencionales. Las capacidades son de tipo: Boolean, numérico y cadena. La biblioteca termcap no tiene ningún tipo predeterminado para cada nombre de capacidad. Determina los tipos de cada capacidad por la sintaxis:

  • cadena capacidades de tienen un "=" entre el nombre de capacidad y su valor,
  • numérico capacidades de tienen un "#" entre el nombre de capacidad y su valor, y
  • Boolean capacidades no tienen ningún valor asociado (que son siempre verdadero Si se especifica).

Las aplicaciones que utilizan termcap esperan tipos específicos para las funciones comúnmente usadas y obtener los valores de las capacidades de la base de datos termcap mediante llamadas de biblioteca que devuelven con éxito sólo cuando la base de datos de contenidos acerca de los partidos del tipo asumido.

Jerarquía

Descripciones de termcap pueden construirse mediante la inclusión de los contenidos de una descripción en el otro, suprimir las capacidades de la descripción incluida o reemplazar o agregar funcionalidades. Pase lo que pase modelo de almacenamiento es utilizado, la biblioteca termcap construye la descripción de las terminales de la descripción solicitada, incluyendo, suprimir o reemplazar en el momento de la solicitud.

Modelo de almacenamiento

Termcap datos se almacenan como texto, por lo que es fácil de modificar. El texto puede obtenerse por la biblioteca termcap de los archivos o las variables de entorno.

Variable de entorno

El TERMCAP variable de entorno puede contener una base de datos termcap. Más a menudo se utiliza para almacenar una descripción simple termcap, establecido por un emulador de terminal para proporcionar características de la terminal a la shell y programas dependientes.

Archivo plano

La aplicación original (y más común) de la biblioteca termcap recupera datos desde un archivo de texto plano. Buscando un gran termcap archivo, por ejemplo, 500Kb, puede ser lento. Para un rendimiento, una utilidad de ayuda tales como reordenar se usa para poner las entradas más frecuentemente usadas cerca del principio del archivo.

Base de datos de hash

Nuevas implementaciones de termcap almacenan la descripción del terminal en una base de datos de hash (por ejemplo, algo así como Berkeley DB versión 1.85). Éstos almacenan dos tipos de registros: alias que señalan a la entrada canónica y la entrada canónica de sí mismo. Literalmente se almacena el texto de la entrada de termcap.

Limitaciones y extensiones

La implementación de termcap original fue diseñada para utilizar poca memoria:

  • el primer nombre es dos personajes, para caber en 16 bits
  • los nombres de capacidad son dos personajes
  • las descripciones se limitan a 1023 caracteres.
  • Sólo una descripción puede ser incluida y debe ser al final.

Nuevas implementaciones de la interfaz de termcap generalmente no requieren el nombre de dos caracteres al principio de la entrada.

Capacidad nombres siguen siendo dos personajes en todas las implementaciones.

El tgetent función solía leer la descripción de las terminales utiliza un búfer cuyo tamaño debe ser lo suficientemente grande como para los datos y se supone que es 1024 caracteres. Nuevas implementaciones de la interfaz de termcap pueden relajarse esta restricción permitiendo un puntero nulo en lugar del búfer fijo,[4] o al ocultar los datos que no cabría, por ejemplo, a través del ZZ capacidad en NetBSD termcap.[5] La interfaz de biblioteca terminfo también emula la interfaz termcap y en realidad no utiliza el búfer de tamaño fijo.

Emulación de la biblioteca terminfo de termcap permite múltiples descripciones a incluirse sin restringir la posición. Algunas otras implementaciones más recientes de la biblioteca termcap también pueden proporcionar esta capacidad, aunque no está bien documentado.[6]

Características obsoletas

Una capacidad especial, la capacidad de "hz", fue definida específicamente para apoyar el Hazeltine 1500 terminal, que tuvo la desafortunada característica de usar el ASCII carácter tilde ('~ ') como un introductor de la secuencia de control.[7][discutir] Para apoyar esa terminal, no sólo hizo código que utiliza la base de datos debe saber acerca del uso de la tilde a introducir ciertas secuencias de control, pero también tenía que saber para sustituir a otro carácter imprimible para cualquier tildes en el texto, puesto que una tilde en el texto sería interpretada por la terminal como el inicio de una secuencia de control, dando lugar a falta de texto y pantalla garbling.[8] Además, atribuyen los marcadores (como inicio y final del subrayado) se tomó lugar en la pantalla.[citación necesitada] Comentarios en el código fuente de base de datos a menudo se referían a esto como "Hazeltine Vegeta".[9] Desde el 1500 Hazeltine era un terminal utilizado a finales de 1970,[citación necesitada] era importante para las aplicaciones poder lidiar con sus limitaciones.

Véase también

  • Terminales de computadora
  • Maldiciones (biblioteca de programación)
  • Terminfo

Referencias

  1. ^ Peter H. Salus, "la historia de Unix es colaboración tanto como se trata de tecnología", Byte, de octubre de 1994.
  2. ^ Kenneth C. R. C. Arnold y Elan Amir, "Cursor movimiento optimización y actualización de la pantalla: un paquete de biblioteca"
  3. ^ publicación Alt.sys.pdp10
  4. ^ La biblioteca Termcap GNU
  5. ^ Formato de archivo termcap NetBSD
  6. ^ Discusión de termcap en vi
  7. ^ termcap–BSD Formatos de archivo Manual
  8. ^ Stallman, Richard M. (1992). "La biblioteca Termcap y base de datos, segunda edición". GNU.org. 17 de mayo de 2014.
  9. ^ "termcap.src". Apple Computer. 17 de mayo de 2014.

Enlaces externos

  • Datos actuales termcap
  • Página de recursos de termcap/Terminfo en Eric S. Raymonddel sitio web

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=termcap&oldid=609730594"