linux 键盘设备文件名,Linux通过读取设备文件监听键盘

#include

#include

#include

#include

#define DEV_PATH "/dev/input/event5" //根据需要修改为你的键盘对应的设备文件,可以直接sudo cat /dev/input/event5并按键盘,看是否有输出,见附图

int main()

{

int keys_fd; //文件标志

char ret[2];

struct input_event t; //读取到的input设备数据是一个结构体

keys_fd = open(DEV_PATH, O_RDONLY); //权限不通过的时候一般会返回-1

if(keys_fd <= 0)

{

printf("open /dev/input/event2 device error!\n");

return -1;

}

while(1)

{

if(

read(keys_fd, &t, sizeof(t)) == sizeof(t)

) /*keys_fd指向打开的设备文件,read将从设备文件传送sizeof(t)个字节的数据到&t这个内存地址。函数执行顺利的话返回值是实际读取的字节数*/

{

if(t.type == EV_KEY)

{

if(t.value==0 || t.value==1)

{

printf("key %d %s\n", t.code, (t.value) ? "Pressed" : "Released"); //t.code值所对应的按键在/usr/include/linux/input-event-codes.h可以查到

}

}

}

}

close(keys_fd);

return 0;

}

5f12b0e9a9e5?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

附图

操作其他的设备类似,不过要提前了解相关的数据结构

但是这种监听是需要有设备文件的读取权限的(默认root用户才有),read函数是系统函数,阻塞地读取设备文件,当设备文件中的缓存为空时挂起等待。

推荐Linux全局事件监听技术

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值