即使终端关闭,如何从STDIN_FILENO读取?

时间:2013-09-28 10:31:00

标签: linux

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

1 个答案:

答案 0 :(得分:1)

STDIN_FILENO只是一个辅助宏。

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

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