Questa domanda è in realtà una serie di domande e "personaggi di controllo" si rivolge solo a una piccola parte di essa, ad esempio la barra di avanzamento curl
. Più in generale, queste sono le caratteristiche comuni dei terminali (e degli emulatori di terminali).
La maggior parte di queste funzioni comuni sono standardizzate in ECMA-48: Funzioni di controllo per set di caratteri codificati . Tuttavia, altre funzionalità non lo sono . Sono definiti dall'implementazione.
ECMA-48 si riferisce alle funzioni di controllo . Ciò include i caratteri di controllo e le sequenze di controllo (spesso indicate come sequenze di escape, sequenze ANSI, ecc.).
Alcuni caratteri di controllo vengono utilizzati per operazioni semplici , ad es.
- sposta il cursore sulla colonna precedente sulla stessa riga
- sposta il cursore sulla prima colonna sulla stessa riga
- sposta il cursore sul tab stop successivo sulla stessa riga
- sposta il cursore sulla riga successiva (e scorri la schermata se è già sull'ultima riga)
La barra di avanzamento per curl
viene creata utilizzando queste semplici operazioni. Ma i personaggi di controllo possono fare solo così tanto, non di più. Le sequenze di controllo fanno di più, ad es.
- sposta il cursore su qualsiasi riga / colonna sullo schermo
- sposta il cursore su qualsiasi riga nella stessa colonna sullo schermo
- sposta il cursore su qualsiasi colonna della stessa riga sullo schermo
- imposta i punti di tabulazione in qualsiasi colonna dello schermo
- sposta il cursore sulla riga precedente
- fai scorrere lo schermo verso l'alto o verso il basso senza spostare il cursore
Questo per quanto riguarda i parallelismi tra semplici / complessi. Le sequenze di controllo vengono inoltre utilizzate per modificare il colore del testo e dello sfondo, cancellare il testo dallo schermo, mostrare il testo in video inverso (o grassetto, sottolineato, lampeggiante).
I programmi che disegnano una barra di avanzamento del video inverso (o colorato) usano sequenze di controllo .
Sebbene le sequenze di controllo possano fare di più, possono fare solo cose specifiche. Metterli insieme per creare editor di testo, schermate di installazione (e programmi che disegnano barre di avanzamento colorate) diventa complicato. Parte di questo è reso più semplice usando librerie che conoscono queste cose. Inizialmente, avevamo termcap (e un database di alcune centinaia di tipi di terminali), esteso a terminfo (e un database di circa mille tipi di terminali).
Anche con la standardizzazione, ci sono dozzine di descrizioni di terminali che è possibile utilizzare . Quindi continuiamo a usare le librerie per tutte tranne la più banale di queste applicazioni. Uno è ncurses ("new-curses"), un altro è slang (tecnicamente "S-Lang").
Ulteriori letture:
ncurses
.