-2

我想知道是否有任何方法可以获取终端类型但获取 env("TERM")。

tgetent(NULL, getenv("TERM"));

但是如果我用一个空的环境执行我的程序

env -i ./a.out

我将无法获得使用 termcap 库所需的终端类型。

有什么方法可以找到带有空 env 的终端类型?

4

1 回答 1

0

您没有找到终端环境,而是对其进行设置,以便您的应用程序能够正常工作。它应该设置为与您的程序运行的终端的功能相对应。

在某些特殊情况下,例如cron,您没有终端,但出于某种原因希望能够使用 termcap(顺便说一下,更可能是 terminfo 库的 termcap 接口)。在 ncurses 中,有一些条目,例如generic,unknowndumb,它们表示不能用于全屏模式的终端。

目前使用的大多数(比如 2/3 或更多)终端仿真器与 DEC VT100 具有合理的兼容性,因此设置TERMvt100“有效”。为了更好地适应,您需要知道终端的功能。例如,有些人会说将其设置为xterm,但这可能不是一个好建议(ncurses FAQ为什么不直接使用 TERM 设置为“xterm”?)。

于 2015-05-24T20:07:42.610 回答