Linux获取/dev/input目录下的event对应的设备【转】
转自:https://blog.csdn.net/qq_21792169/article/details/51458855
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input2
U: Uniq=
H: Handlers=kbd event2
B: EV=120013
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7
I: Bus=0011 Vendor=0002 Product=0005 Version=0000
N: Name="ImPS/2 Generic Wheel Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input3
U: Uniq=
H: Handlers=mouse1 event3
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103
- #include <stdlib.h>
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #include <string.h>
- #include <sys/mman.h>
- //#define DBG_PRINTF(...)
- #define DBG_PRINTF printf
- char *command="cat /proc/bus/input/devices > log.txt" ;
- char *file_path="./log.txt";
- char *file_buff;
- int number;
- int find_event()
- {
- int iFd;
- FILE *tFp;
- struct stat tStat;
- char *sub_buff="Handlers=mouse1";
- /* according to mouse name find event number*/
- char *buff;
- tFp=fopen(file_path,"r+"); /* check if have log.txt file */
- if(NULL!=tFp)
- {
- fclose(tFp);
- system("rm log.txt");
- }
- system(command);
- /* 打开文件 */
- tFp = fopen(file_path, "r+");
- if (tFp == NULL)
- {
- DBG_PRINTF("can't open %s\n", file_path);
- return -1;
- }
- iFd = fileno(tFp);
- fstat(iFd, &tStat);
- /* mmap the file to mem */
- file_buff = (unsigned char *)mmap(NULL , tStat.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, iFd, 0);
- if (file_buff== (unsigned char *)-1)
- {
- DBG_PRINTF("mmap error!\n");
- return -1;
- }
- buff=strstr(file_buff,sub_buff);/* in the mem file_buff find sub_buff name */
- if(NULL==buff)
- {
- DBG_PRINTF("can't find %s\n",sub_buff);
- munmap(file_buff, tStat.st_size);
- return -1;
- }
- number=*(buff+strlen(sub_buff)+6);/* 6== event */
- munmap(file_buff, tStat.st_size);
- fclose(tFp);
- return 0;
- }
- int main(int argc, char **argv)
- {
- find_event();
- DBG_PRINTF("event%d\n",number-'0');
- return 0;
- }
查看CPU信息:cat /proc/cpuinfo
查看内存信息:cat /proc/meminfo
查看USB设备:cat /proc/bus/usb/devices
查看键盘和鼠标:cat /proc/bus/input/devices
查看各分区使用情况:df
查看体系结构:busybox uname -a
查看中断信息:cat /proc/interrupts
Linux获取/dev/input目录下的event对应的设备【转】的更多相关文章
- Linux如何查看与/dev/input目录下的event对应的设备
1.查看当前的设备 dev/input/ 2.查看设备的名称 cat /proc/bus/input/devices
- [转帖]Linux系统/dev/mapper目录浅谈
Linux系统/dev/mapper目录浅谈 Linux系统的一般的文件系统名称类似于/dev/sda1或/dev/hda1,但是今天在进行系统维护的时候,利用df -h 命令敲出了/dev/ma ...
- Linux编译Windows共享目录下代码
Linux编译Windows共享目录下代码(金庆的专栏)万神服务器代码是跨平台的.平时策划在Windows上开自己的服务器测试,测试和发布服务器为Linux.开发时,先在Windows上编译测试,再到 ...
- Linux查找和替换目录下所有文件中字符串(转载)
转自:http://rubyer.me/blog/1613/ 单个文件中查找替换很简单,就不说了.文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结. 查找文件夹 ...
- java获取ubuntu某个目录下的所有文件信息
java获取ubuntu某个目录下的所有文件信息 public List<VCFile> getAllFiles(String basicDirName) { List<VCFile ...
- linux c++ 遍历一个目录下的文件名 (包括子目录的文件名)
最近写代码有一个要遍历目录下的每一个文件并取得这个文件的绝对路径的需求, 我们知道linux c++中有system命令所以我在代码中 先生成了一个log,然后去读log文件的每一行文件名,然后给存储 ...
- Linux系统/dev/mapper目录浅谈
Linux系统的一般的文件系统名称类似于/dev/sda1或/dev/hda1,但是今天在进行系统维护的时候,利用df -h 命令敲出了/dev/mapper/VolGroup-lv_root和/de ...
- linux怎么实时查看目录下是否有文件生成
inotify-tools 是为linux下inotify文件监控工具提供的一套c的开发接口库函数,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件. inotify-tools是用 ...
- linux系统/var/log目录下的信息详解
一./var目录 /var 所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/v ...
随机推荐
- page = new String(request.getQueryString().getBytes("ISO-8859-1"),"GBK");解决前台传后台乱码问题
page = new String(request.getQueryString().getBytes("ISO-8859-1"),"GBK");解决前台传后台 ...
- [微软]The latest version of Windows is Windows Sandbox
The latest version of Windows is Windows Sandbox by Surur @mspoweruser Dec 19, 2018 at 1:40 GMT As h ...
- MySQL查询优化:LIMIT 1避免全表扫描
在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率. 例如下面的用户表(主键id,邮箱,密码): create table t_user(id int primar ...
- angular 可信的html 指令
angular.module('app').filter('trustHtml', ($sce) => { return (html) => { if(typeof(html)==&quo ...
- aop 例外通知就是记录业务方法出现错误 并保存到日志里面的功能
aop 例外通知就是记录业务方法出现错误 并保存到日志里面的功能
- MySql的相关资操作
01-MySql的前戏 MySql的前戏 在学习Mysql之前,我们先来想一下一开始做的登录注册案例,当时我们把用户的信息保存到一个文件中: #用户名 |密码root|123321 alex|12 ...
- Linux_MySql_tar_安装(转)
系统版本:CentOs 7.* Mysql版本:5.7.17(自己测试版本) 根据博主[大大的橙子]博文转载记录(大部分照搬了,只修改少许部分) 一.基本环境部署 #卸载系统自带的Mariadb [r ...
- 【刷题】BZOJ 4316 小C的独立集
Description 图论小王子小C经常虐菜,特别是在图论方面,经常把小D虐得很惨很惨. 这不,小C让小D去求一个无向图的最大独立集,通俗地讲就是:在无向图中选出若干个点,这些点互相没有边连接,并使 ...
- 学习Spring Boot:(十六)使用Shiro与JWT 实现认证服务
前言 需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时access_token进行资源访问.这里我们将使用 JWT 1,基于散列的消息认证码,使用一 ...
- 前端学习 -- Css -- 选择器的优先级
当使用不同的选择器,选中同一个元素时并且设置相同的样式时,这时样式之间产生了冲突,最终到底采用哪个选择器定义的样式,由选择器的优先级(权重)决定优先级高的优先显示. 优先级的规则 内联样式 , 优先级 ...