我有一个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程序集或其他一些非常低级的代码中,而且我真的不想打扰外部库。