Ich schreibe ein Programm, das Termcaps verwendet und ich muss wissen, welche Art von Terminal ich verwende.
Ich bin mir bewusst, ich kann Variable über getenv("TERM")
, aber ich kann mein Programm mit "$ env -i ./myprog
" starten und TERM wird nicht festgelegt.Darf ich TERM-Umgebungsvariable sicher setzen?
Also wie kann ich feststellen, welche Terminalart muss ich verwenden?
Darf ich in meiner Anwendung sicher Variable auf xterm/xterm-256color
setzen?
Wird es Probleme mit der Portabilität geben?
Gibt es eine Methode, um dies sicher zu tun (Termtyp)?
Ich habe viele Handbücher (getty - getttab - tty - ttys) und Beiträge gepostet, aber ich kann keine Lösung finden.
Ich mache mir auch Sorgen, denn wenn ich eine Shell (wie zsh
oder tcsh
) starte, habe ich Probleme mit einigen Schlüsseln.
Zum Beispiel startet zsh
wie so:
$env -i zsh
verursachen Probleme mit Pfeilen und alle Schlüssel, was impliziert, termcaps (auch Ctr-d).
Stattdessen bash
und tcsh
wird normal auf vielen Schlüsseln, aber nicht alle verhalten.
Das TERM-Variable existiert genau den Endgerätetyp zu bestimmen, verwendet werden, Es gibt kaum eine andere Möglichkeit, den Terminaltyp zu erraten und TERM zu setzen. Sie können den Benutzer ein Terminal auswählen lassen, wenn es nicht festgelegt ist, oder versuchen, standardmäßig auf 'vt100' zu setzen, da dies häufig verwendet wird. – Ctx
Ich versuche, eine portabler als mögliche Anwendung zu bekommen, also ich denke, wenn ich vt100 als Standard festlegen möchte, kann ich eines Tages ein Problem mit der Portabilität haben? – LotoLo
Nein, es funktioniert einfach nicht wie erwartet, wenn die verwendete Terminalemulation mit vt100 inkompatibel ist. Der portable Weg ist: Verlassen Sie sich auf die Einstellung der Umgebungsvariablen TERM; wenn es nicht gesetzt ist, muss der Benutzer seine Umgebung reparieren – Ctx