Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图在 Linux 中编写一个程序来读取键盘的每个输入,但使用STDIN_FILENO它只能读取在终端中输入的那些。我想要的是在执行期间即使终端关闭它也应该读取键盘。
STDIN_FILENO
STDIN_FILENO只是一个辅助宏。
从标准输入,您收到传递给程序的字节流,它们不一定来自终端 - 也可以来自文件等。它不是捕获键盘。终端正在捕获键盘,然后将输入的数据传递给程序的标准输入。
为了捕获键盘,您将需要其他一些接收事件的方法。我猜你正在运行 GUI aka X 服务器;通常应用程序创建窗口并接收与它们相关的事件。为了捕获所有键盘事件,您将不得不进行更底层的操作。看看xlib哪些对你来说应该足够了,即使它可能还不够。
xlib