我正在研究一个处理来自 Linux 内核的触摸屏事件的用户空间库。
下面这行代码,我不明白它的作用。EVIOCGRAB
使用触摸屏文件描述符传递给 ioctl的目的是什么?为什么需要它?
ioctl(fd, EVIOCGRAB, (void *)1);
EVIOCGRAB
恐怕谷歌搜索并没有给我带来太多信息。提前致谢。
答案1
EVIOCGRAB
参数为 1 时尝试独占设备evdev
;如果成功,则被抓取设备产生的所有事件将仅发送到拥有的客户端。严格来说这不是必需的,事实上libevdev
的文档libevdev_grab
(这是库调用包装EVIOCGRAB
)说
这通常是一个坏主意。不要这样做。