gpt4 book ai didi

linux - Unix 中的键盘设备

转载 作者:IT王子 更新时间:2023-10-29 00:52:57 25 4
gpt4 key购买 nike

如何捕获所有用户输入,一次读取一个字节?

我做了这个编码,但它不起作用

if ((fd = open("/dev/char", O_RDONLY) != 1) {
tty = open("/dev/tty", O_RDONLY);
tcsetattr(0, TCSANOW, &orig_info);
read (fd, &buf, sizeof(char));
}
close(fd);

我希望终端等待输入,但它没有。

最佳答案

键盘设备本身是/dev/input 中的条目之一。您可以在 /dev/input/by-path 中按连接类型(例如 PS/2、USB 等)找到键盘和其他输入设备。显然,您需要以 root 身份运行才能直接访问硬件,并且您需要提供自己的翻译,将来自键盘的原始字节转换为按键和按键释放等内容。这可能不是您想要的。

如果您正在运行 GUI 应用程序,低级方法是调用 XNextEvent以及同一家族中的其他功能。解码输入事件并非完全微不足道,因为应用修饰符取决于应用程序。 GUI 框架(Motif、Gtk、Qt 等)会帮助您。

如果您正在运行终端应用程序,请从标准输入或 /dev/tty 读取(/dev/tty 始终是您的程序正在运行的终端打开,即使标准输入已被重定向)。您需要将终端放在 raw mode 中.您将获得解码后的字符键和主要作为转义序列的功能键。在这里,图书馆也有帮助;事实上的标准是ncurses .

关于linux - Unix 中的键盘设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15880196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com