首页 > 系统相关 >linux 键盘按键键码捕捉测试

linux 键盘按键键码捕捉测试

时间:2024-03-21 18:15:07浏览次数:18  
标签:键码 键盘 fd linux input include type event

捕捉linux中键盘输入对象的键码情况

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <linux/input.h>
#include <linux/input-event-codes.h>

const char * path = "/dev/input/event4";

int main(void)
{
   int ret;

   int fd;
   struct input_event event;

   fd = open(path,O_RDONLY);
   if(fd < 0)
   {
      perror(path);
      exit(-1);
   }

   while(1)
   {
      ret = read(fd,&event,sizeof(struct input_event));
      if(ret == sizeof(struct input_event))
      {
            if(event.type != EV_SYN)
            {
               //printf("Event: time %ld.%ld,",event.time.tv_sec,event.time.tv_usec);
               if ( event.type == 1 )
               {
                    printf("type:%d,code:%d, state:%s\n", event.type,event.code,(event.value==1? "press" : (event.value==2? "longPress" : "release")));
               }
            }
      }
   }

   close(fd);

   return 0;
}

其中,/dev/input/event4为系统中键盘对应的设备文件, 每个系统可能不一致,因此修改此文件名可以简单捕捉键盘的键码值;

标签:键码,键盘,fd,linux,input,include,type,event
From: https://www.cnblogs.com/weijian168/p/18087956

相关文章

  • Linux服务器上部署更新/重启nuxt项目
    启动/更新/重启nuxt项目步骤1、本地电脑打包生成nuxt文件夹2、压缩nuxt文件夹后上传到服务器3、替换掉服务器上旧的nuxt文件夹..3.1、建议备份服务器上的nuxt文件夹,不做删除操作,只重命名下mvnuxtnuxt20240310//重命名nuxt文件夹为nuxt20240310..3.2、......
  • Linux脏牛提权漏洞复现(DirtyCow)
    #简述脏牛(DirtyCow)是Linux中的一个提权漏洞。主要产生的原因是Linux系统的内核中Copy-on-Write(COW)机制产生的竞争条件问题导致,攻击者可以破坏私有只读内存映射,并提升为本地管理员权限。#前期准备靶机:vulnhub——Lampiao192.168.230.217攻击机:Kali192.168.230.128#复现......
  • linux 录屏软件
    对于Linux操作系统,我们经常使用SSH远程登录服务器命令行界面进行管理,有时需要记录所做的操作。此时,我们就需要用到script命令,它可以制作一份记录输出到终端的记录,该记录可以保存并在以后再打印出来。script命令默认情况下就被安装,无需额外安装,使用时会用到script和scriptrepla......
  • linux部署Minio
    linux部署Minio 1、官网https://min.io/docs/minio/linux/index.html?ref=docs-redirect下载minio程序运行文件,wgetwgethttps://dl.min.io/server/minio/release/linux-amd64/minio 2、创建数据目录mkdir-p/data/minio/data 3、移动minio服务运行......
  • Linux应用编程和网络编程
    一、Linux中的文件IO..11.1应用编程框架介绍..11.1.1.什么是应用编程..11.1.2.课程思路..11.1.3.什么是文件IO..11.2文件操作的主要接口API11.2.1.什么是操作系统API11.2.2.文件操作的一般步骤..11.2.3.重要概念:文件描述符..21.3一个简单的文件读写实例........
  • 二、linux基础命令
    2.1linux的提示符1.[root@localhost~]#提示符的格式1.[当前用户名@当前的主机名当前所在的位置]身份标识符root的提示符1.[root@localhost~]#tom的提示符1.[tom@localhost~]$身份标识有俩种1.#表示这个用户是管理员2.$表示这个用户是普通用户当前所在的位置......
  • Uboot启动Linux内核
    参考资料来源:https://www.bilibili.com/video/BV12E411h71h?p=22&vd_source=432ba293ecfc949a4174ab91ccc526d6正点原子Linux驱动开发指南 image全局变量:在bootm.c中,存在一个全局变量bootm_headers_timages;/*pointerstoos/initrd/fdtimages*/结构体定......
  • QGIS编译(跨平台编译)056:PDAL编译(Windows、Linux、MacOS环境下编译)
    点击查看专栏目录文章目录1、PDAL介绍2、PDAL下载3、Windows下编译4、linux下编译5、MacOS下编译1、PDAL介绍  PDAL(PointDataAbstractionLibrary)是一个开源的地理空间数据处理库,它专注于点云数据的获取、处理和分析。PDAL提供了丰富的工具和库,用于处理......
  • Linux安装Nacos
    1,先安装jdk,nacos需要依赖于jdk2,官网前往GitHub下载安装包官网:https://nacos.io/zh-cn/GitHub:https://github.com/alibaba/nacos12 3,创建nacos目录,并上传 4,解压压缩包,并查看tar-zxvfnacos包名1 5,编辑配置文件,修改端口#进入nacos配置文件目录cd/opt/nacos/conf#编辑naco......
  • linux centos使用rz、sz命令上传下载文件
    一般情况下,我们会使用终端软件,如XShell、SecureCRT或FinalShell、JumpServer堡垒机来连接远程服务器后,使用rz命令上传本地文件到远程服务器,再解压发版上线。一、安装使用安装rz和sz命令yum-yinstalllrzsz使用rz上传文件,会跳出文件选择窗口,选择好文件,点击确认即可r......