curses (biblioteca de programación)


curses es una biblioteca de control de terminal para sistemas similares a Unix, que permite la construcción de aplicaciones de interfaz de usuario de texto (TUI).

El nombre es un juego de palabras con el término " optimización del cursor ". Es una biblioteca de funciones que administran la visualización de una aplicación en terminales de celdas de caracteres (p. ej., VT100 ). [1]

Usando curses, los programadores pueden escribir aplicaciones basadas en texto sin escribir directamente para ningún tipo de terminal específico. La biblioteca de curses en el sistema de ejecución envía los caracteres de control correctos según el tipo de terminal. Proporciona una abstracción de una o más ventanas que se mapean en la pantalla del terminal. Cada ventana está representada por una matriz de caracteres. El programador configura la apariencia deseada de cada ventana, luego le dice al paquete curses que actualice la pantalla. La biblioteca determina un conjunto mínimo de cambios que se necesitan para actualizar la pantalla y luego los ejecuta usando las capacidades y secuencias de control específicas del terminal.

En resumen, esto significa que el programador simplemente crea una matriz de caracteres de cómo debería verse la pantalla y deja que curses se encarguen del trabajo.

La API curses se describe en varios lugares. [2] La mayoría de las implementaciones de curses usan una base de datos que puede describir las capacidades de miles de terminales diferentes. Hay algunas implementaciones, como PDCurses, que utilizan controladores de dispositivos especializados en lugar de una base de datos de terminal. La mayoría de las implementaciones usan terminfo ; algunos usan termcap . Curses tiene la ventaja de la portabilidad hacia atrás a terminales de celdas de caracteres y la simplicidad. Para una aplicación que no requiere gráficos de mapa de bits o fuentes múltiples, una implementación de interfaz que usa curses generalmente será mucho más simple y rápida que una que usa un kit de herramientas X.

La primera biblioteca de maldiciones fue escrita por Ken Arnold y originalmente lanzada con BSD UNIX, donde se usó para varios juegos, sobre todo Rogue . [3] [4] [5] Se hicieron algunas mejoras a la biblioteca BSD en la década de 1990 como maldiciones "4.4BSD", por ejemplo, para proporcionar más de un tipo de resaltado de video. [ cita requerida ] Sin embargo, esos no son ampliamente utilizados.