我正在编写一个使用 termcaps 的程序,我需要知道我使用的是哪种终端。
我知道我可以TERM
通过 获取变量getenv("TERM")
,但我可以使用 "" 启动我的程序,$ env -i ./myprog
并且不会设置 TERM。
那么如何确定必须使用哪种终端类型呢?
我可以在我的应用程序中安全地设置TERM
变量吗?
它会导致不可移植性问题吗?
有没有一种方法可以安全地做到这一点(获取术语类型)?
我有很多手册(getty - getttab - tty - ttys)和帖子,但我找不到任何解决方案。 xterm/xterm-256color
我也很担心,因为如果我启动一个 shell(比如zsh
or tcsh
),我会遇到一些键问题。
例如,zsh
像这样启动:
$env -i zsh
将导致箭头和任何暗示 termcaps 的键(甚至 Ctr-d)出现问题。
相反bash
,tcsh
它将在许多键上正常运行,但不是全部。