Ich versuche mir vorzustellen, wie Muscheln den Bildschirmcursor bewegen (Bewegen Sie sich umher, geben Sie die Pfeiltasten ein und so).
Ich habe viele Tests durchgeführt und keinen Systemaufruf gefunden, der eine Bewegung des Bildschirmcursors in einem Terminal ermöglicht. Erfolgt dies über bestimmte Terminalerweiterungen? Wenn ja, gibt es eine Dokumentation darüber, wie dies beispielsweise für xterm erreicht wird?
Das hat mich verrückt gemacht, jedes Licht, das Sie darauf werfen können, wird geschätzt.
Akzeptierte Antwort:
Es gibt keinen solchen Systemaufruf oder Satz von Systemaufrufen. Es geschieht alles durch Konvention.
Früher, als ein „Terminal“ ein großes, klobiges Gerät war, das über ein Kabel mit einem Computer verbunden war, konnten „intelligente Terminals“ beispielsweise den Cursor bewegen, eine Linie zeichnen oder ein Polygon mit Farben füllen . Das Smart Terminal tat dies normalerweise über „Escape-Sequenzen“. Ein Programm gab eine spezielle Folge von Byte-Werten aus, normalerweise beginnend mit ASCII 0x1b, „ESC“, um einen Cursor zu bewegen, ein Wort zu färben oder irgendetwas anderes zu tun, als eine Fernschreibmaschine zu imitieren.
Das ist die „Konvention“. Heutzutage ist ein „Terminal“ fast immer nur ein Fenster unter vielen auf einem Bitmap-Bildschirm, xterm, rxvt usw. usw. Es liegt an xterm (oder rxvt oder was auch immer), die Bytes zu lesen, die von „dem Programm“ kommen, das darin läuft, und interpretieren diese Bytes gemäß einer gegebenen Konvention. Ich habe gerade Folgendes in eines meiner xterm-Fenster eingegeben:
6 % echo $TERM
xterm
Aber ich weiß, dass alte, alte xterms in diesem Fall „vt100“ sagten. Jedes Programm, das „den Cursor bewegt“, muss Escape-Sequenzen für die „xterm“-Konvention ausgeben, um den Cursor in einer xterm-Instanz zu bewegen.
Du könntest man curses
ausführen und man terminfo
für weitere Informationen.
P.S.
Die Leute haben ganze Fenstersysteme mit Escape-Sequenzen gemacht. Siehe MGR als Beispiel.