我想/dev/tty1
通过多个进程打开一个字符设备,从而不会干扰它们之间的读取。我注意到,如果一个进程消耗一个字节,则其他进程不会收到它。
问题详情:
我正在 Linux 上编写控制台应用程序,这需要接收:按键和按键释放。我已经设法从默认终端模式切换到K_XLATE
在新打开的.不幸的是,从该描述符读取会导致丢失字节,因为 mc 尝试通过从同一设备读取来并行拦截击键(将其接口置于顶部或将其隐藏回来)。K_RAW
ioctl(fd,KDSKBMODE,K_RAW)
/dev/tty1
Ctrl+O
mc
所以我还尝试从标准输入(设置/dev/tty
为模式后)创建的伪终端管道读取数据K_RAW
。它几乎起作用了,除了现在我的Ctrl+O
字符代码0x0F
与 Tab 键扫描代码发生冲突(也0x0F
)。
我正在寻找一种不需要比 更高权限的方式来解决该干扰问题cap_sys_tty_config
,因此访问/dev/input
以直接读取键盘对我来说不是一种可行的方法。