打开/ dev / input / *字符设备总是会导致段错误

时间:2015-10-12 23:52:37

标签: c++ linux input stream

我有一个C ++程序,它应该是一个原始的键盘和鼠标事件处理程序,通过从Linux中的字符设备文件读取。

问题是,每当我尝试通过字面上的任何I / O函数(例如getc,fgetc,read,gets,scan等等)读取流时,它总会产生段错误。我甚至检查以确保文件不是NULL,在这种情况下程序会抛出一个常规错误。

这就是我的计划所做的事情:

FILE * mouseFile;
FILE * kbdFile; //Definitions for my streams

mouseFile = fopen("/dev/input/mice", "r"); //Open mice stream in readonly

kbdFile = fopen("/dev/input/event5", "r"); //In my case, the keyboard is event 5

/* 
A loop here that uses one of the I/O functions i talked about earlier, and 
then simply prints that to standard output. This is where I assume that  the
segfault happens, because i can open the stream just fine.
*/

我会使用X或SDL,但我计划最终将其移植到NASM程序集或其他一些非常低级的代码中,而且我真的不想打扰外部库。

0 个答案:

没有答案