Possible Duplicate:
How to fetch data in a background process in Ubuntu
我正在写一个程序来监视键盘上的按键。但我的程序可能在前台运行,也可能在后台运行。我听说有一个特定于操作系统的系统调用,即使运行系统调用的程序在后台,程序员也可以通过它来监视键盘的活动。我是Ubuntu编程新手,所以请告诉我操作系统调用是什么。
注:
这项计划完全是为了教育目的。这是学校计划的一部分。。
当做

最佳答案

大多数Ubuntu系统(至少是新手Ubuntu用户的桌面系统)都运行X11窗口服务器(比如Xorg)。服务器(仅)正在获取原始键盘和鼠标设备输入。它处理它们以将X11 protocol events交付给客户端应用程序(例如,您的firefox浏览器、emacs编辑器、gnome或xterm终端)。
您可以花时间(几个月)了解所有这些(可能从freedesktop开始),也可以切换到其他项目,可能只是使用Gtk(在Gnome中)或Qt(在KDE中)编写一个有趣的GUI应用程序。所有Linux图形工具包库都构建在与X11协议接口的库之上,通常XlibXCB
如果您想开始学习Linux编程,请阅读Advanced Unix ProgrammingAdvanced Linux Programming。之后,花很多时间去了解tty-s的奥秘,并熟悉syscalls(2)。然后熟悉像Qt或GTK这样的图形工具包。
然后你就会开始明白,要准确地回答你的问题是多么困难。(答案很大程度上取决于观点-Xorg与其他应用程序(特别是X个客户端)相比,看到的关键事件不同,而且非常复杂)。
一旦你理解了我给你的链接中的所有概念,你就能更准确地提出你的问题。当你用更精确、更专业的术语(特别是解释你想在哪一级监控键盘和鼠标)提出问题,并显示你所试验的代码时,我们将能够(并且愿意)回答你。

07-26 09:29
查看更多