Linux上打开字符设备供多进程并行读取

Linux上打开字符设备供多进程并行读取

我想/dev/tty1通过多个进程打开一个字符设备,从而不会干扰它们之间的读取。我注意到,如果一个进程消耗一个字节,则其他进程不会收到它。

问题详情: 我正在 Linux 上编写控制台应用程序,这需要接收:按键和按键释放。我已经设法从默认终端模式切换到K_XLATE在新打开的.不幸的是,从该描述符读取会导致丢失字节,因为 mc 尝试通过从同一设备读取来并行拦截击键(将其接口置于顶部或将其隐藏回来)。K_RAWioctl(fd,KDSKBMODE,K_RAW)/dev/tty1Ctrl+O

mc所以我还尝试从标准输入(设置/dev/tty为模式后)创建的伪终端管道读取数据K_RAW。它几乎起作用了,除了现在我的Ctrl+O字符代码0x0F与 Tab 键扫描代码发生冲突(也0x0F)。

我正在寻找一种不需要比 更高权限的方式来解决该干扰问题cap_sys_tty_config,因此访问/dev/input以直接读取键盘对我来说不是一种可行的方法。

相关内容