我正在编写一个程序,需要对按键响应(例如通过打印" hello key press")实时(程序运行在一个大约2秒钟的巨型循环中)去完成)。我找到了一个可能的答案Detecting keydown and keyup events on Linux C++,但答案对我来说并不是很清楚(我也查看了通过重复链接的4个答案)。有人可以提供一个简单的代码示例,说明如何通过打印单行(或做任何事情)使linux程序响应按键,而无需每次循环检查它吗?
答案 0 :(得分:3)
查看SDL输入事件。简单的DirectMedia Layer(SDL)提供了一个为游戏之类的东西开发的跨平台API。它确实提供了许多低级键盘,鼠标等功能。可以找到here链接。
答案 1 :(得分:1)
基本上有各种方法:
如果长循环时间长,但代码短(即:它包含另一个始终保持的工作内循环),则可以在最内循环中放置事件存在检查。
如果无法重做长循环,则最有可能将应用程序拆分为两个不同的线程:一个执行事件检测和立即操作,另一个执行冗长操作。