0

我试图在 Linux 中编写一个程序来读取键盘的每个输入,但使用STDIN_FILENO它只能读取在终端中输入的那些。我想要的是在执行期间即使终端关闭它也应该读取键盘。

4

1 回答 1

1

STDIN_FILENO只是一个辅助宏。

从标准输入,您收到传递给程序的字节流,它们不一定来自终端 - 也可以来自文件等。它不是捕获键盘。终端正在捕获键盘,然后将输入的数据传递给程序的标准输入。

为了捕获键盘,您将需要其他一些接收事件的方法。我猜你正在运行 GUI aka X 服务器;通常应用程序创建窗口并接收与它们相关的事件。为了捕获所有键盘事件,您将不得不进行更底层的操作。看看xlib哪些对你来说应该足够了,即使它可能还不够。

于 2013-09-29T11:54:08.013 回答