我想在下学期之前学习一个例子,并想尝试一些与操作系统一起工作的东西。
C程序如何拦截来自OS的输入。我能想到的唯一例子是键盘记录。
如何对C程序进行编程以深入挖掘操作系统?
这有意义吗?
答案 0 :(得分:2)
基本上取决于操作系统,您需要“挂钩”操作系统的事件机制。操作系统中发生了不同的事件,按键操作就像鼠标点击一样。可以挂钩这些事件并提供OS在事件发生时调用的函数。
E.g。适用于Windows的see
答案 1 :(得分:2)
在Linux上,您可以观看所有键盘的设备节点并记录收到的事件。
/dev/input/event*
节点提供通用接口 - 您必须观看与鼠标或键盘对应的任何节点。您需要evdev
内核模块才能使用。
/usr/include/linux/input.h
头文件包含您需要了解的有关编程接口的大部分内容。根据我的经验,它非常简单易用。
请记住,某些X-server驱动程序会获取其设备节点并阻止所有其他应用程序获取事件,因此您可能必须更改其选项或使用基于X的界面。
我认为这可以在没有编写内核模块的情况下在Linux上实现。
编辑:
您应该意识到每个操作系统都有自己的输入子系统接口。没有跨平台的方法来做到这一点。你究竟想做什么?