linux input的事件缓存问题

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

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部