我正在对 Linux 内核进行一些研究,尤其是输入子系统。我有兴趣阅读 /dev/input/eventX 设备以获取不同的输入事件(主要是键盘和鼠标)。
但是read()
操作阻塞。我唯一能想到的是创建所有键盘键和鼠标按钮的状态,然后创建一个新线程来读取键盘和鼠标状态(这些线程可能不时被阻塞),并从我的主进程中,访问键盘和鼠标的状态。
但是,我在 C++ 和 Linux 下的非阻塞编程方面不是很有经验,我认为每个设备的线程可能是一种矫枉过正。
我想知道是否有其他方法可以以非阻塞方式处理输入,或者使用线程可以吗?
谢谢,斯威。