Wie funktionieren interaktive Konsolenprogramme?
Frage
Ich mag, wie Programme wie vim
oder man
Arbeit in einer Schale verstehen. Wie lassen sie den Benutzer blättern, aktualisieren Sie die Anzeige und so?
Sie scheinen mit einiger Konsole Bibliothek zu interagieren und damit manipulieren, was wir sehen. Was passiert wirklich?
Lösung
Das Terminal hat, was ein Terminal-Treiber genannt. Dies ist kein Fahrer im Sinne einer Schnittstelle zu Hardware, sondern interpretiert sie bestimmte Zeichenfolge, die sie veranlassen, Operationen durchzuführen, wie Scrollen, Textattribute, und so weiter.
Die Zeichenfolgen gespeichert sind, in der TERM Datenbank . Eine Bibliothek mit dem Namen Flüche (oder seine moderne Entsprechung, ncurses ) liest die Datenbank term und gibt die verschiedenen Sequenzen Zeichen basierend auf den Funktionen genannt.
die terminfo-Datenbank von dem Terminal-Treiber Aussortieren selbst Programme eine Anzahl von Endgeräten wie xterm zu unterstützen und ermöglichen somit die Textkonsole, Netzwerk-Clients, auch remote dummen Terminals über eine serielle Leitung verbunden ist.
Andere Tipps
Here's a great how-to:
You probably want to take a look at chapter 17 - Using the Terminal.