我想在下学期之前学习一个例子,并想尝试一些与操作系统一起工作的东西。
C 程序如何拦截来自操作系统的输入。我能想到的唯一例子是键盘记录器。
如何编写 C 程序来深入操作系统?
这有意义吗?
最佳答案
在 Linux 上,您可以监视所有键盘的设备节点并记录接收到的事件。
/dev/input/event*
节点提供了一个通用接口(interface)——您必须观察它们中与鼠标或键盘对应的任何一个。您需要 evdev
内核模块才能使用它。
/usr/include/linux/input.h
头文件包含您需要了解的有关编程接口(interface)的大部分内容。根据我的经验,它非常简单易用。
请记住,某些 X 服务器驱动程序会获取其设备节点并阻止所有其他应用程序获取事件,因此您可能必须更改它们的选项或使用基于 X 的接口(interface)。
我认为这是在不编写内核模块的情况下在 Linux 上所能达到的最大程度。
编辑:
您应该意识到每个操作系统都有自己的输入子系统接口(interface)。没有跨平台的方法可以做到这一点。你到底想做什么?
关于c - 拦截来自操作系统的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4509794/