linux input的事件缓存问题
本篇其实只是简单探讨一个小小的问题:linux应用层在打开一个输入设备节点之后会有可能收到之前缓存的事件吗?
比如说,开机之后按按键,但是GUI还没起来,这些按键事件哪去了?会不会在GUI起来后还存在从而导致GUI误动作?
答案是:不会!打开一个输入设备的fd, 会对应成为输入设备的一个client, 注册到内核的一个client链表上,每个client会有自己的一个缓冲区,也就是circular buffer,而在内核中,一旦发现输入事件产生,只会上报给已经注册的client, 没有注册的client是收不到这个事件的。因此每个client都只会受到自己注册之后的事件
细节可以参考以下两篇博客:
https://blog.csdn.net/zifehng/article/details/72868826
https://www.zybuluo.com/zifehng/note/718523