无法捕获C中的击键[Ubuntu 16.04LTS]

时间:2016-09-18 16:02:56

标签: c linux ubuntu ubuntu-16.04 keylogger

我一直想在Ubuntu 16.04LTS上做一个键盘记录器一段时间了,这就是我到目前为止所做的:

#include <stdio.h>
#include <fcntl.h>
#include <linux/input.h>
#include <stdbool.h>

int main()
{
        char devname[] = "/dev/input/event0";
        int device = open(devname, O_RDONLY);
        struct input_event ev; 
        bool logging = true;

        while(logging)
        {
                if (read(device,&ev, sizeof(ev)) >= 0){ 
                        printf("Key: %i State: %i Type: %i\n",ev.code,ev.value,ev.type);
                }
        }

}

但是当我编译并运行它(gcc)时,它不会输出任何内容! 我已经尝试了/ dev / input / by-id和theomeome中列出的每个设备,但似乎没有任何工作。

当我使用GCC编译代码时,我收到警告:

keylogger.c: In function ‘main’:
keylogger.c:15:7: warning: implicit declaration of function ‘read’ [-Wimplicit-function-declaration]
   if (read(device,&ev, sizeof(ev)) >= 0){       
       ^

我不知道这是否与程序的功能有关。

任何帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:1)

我明白了,这是一个没有超级用户权限的简单问题。我使用sudo对文件进行了处理,现在一切正常。