在Linuxterminal应用程序中接收按键和键释放事件?

我想写一个简单的C程序,它将根据“关键”事件和“关键事件”执行不同的操作。 这个程序将从rxvt内部运行。

我应该使用什么样的库或机制来访问按键和版本? 阅读/dev/tty只会提供密钥发布是真的吗? termcap,terminfo,ncurses和slang也是这样吗? 有没有办法从terminal应用程序内实现这一点?

Solutions Collecting From Web of "在Linuxterminal应用程序中接收按键和键释放事件?"

下面的链接可能会帮助您使用键盘原始模式,这将使您能够访问键盘事件,而不仅仅是发布密钥。

  1. 这篇Linux Journal 文章
  2. 这篇文章在SourceForge上
  3. 当这一切都变坏的时候,这个HOWTO

原始模式确实有缺点,你必须做自己的扫描代码转换为字符。

这在一般情况下不起作用。 ANSI终端(所有仿真器下降)只代表关键的“按”事件。 他们不会独立记录/下载事件。

如果您需要低级别的键盘事件访问,那么适当的环境实际上就是一个GUI程序。 即使是一个Web应用程序,与终端相比,对于关键事件的访问也会更清晰。

我不认为ncurses会工作。 链接Basilevs提供了关于“向上箭头”键和“向下箭头”键,而不是按键和释放。