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 ...
随机推荐
- Python 安装 imread报错
看到一篇博客才解决 http://blog.csdn.net/u010480899/article/details/52701025
- nginx安装(转发)
Nginx("engine x")是一款轻量级的HTTP和反向代理服务器.相比于Apache.lighttpd等,它具有占有内存少.并发能力强.稳定性高等优势.它最常见的用途就是提 ...
- node之文件的静态资源的托管
/** * 文件的静态资源托管 */ let express = require('express'); let path =require('path'); let app = express(); ...
- C++ STL 的底层数据结构实现
C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque ...
- JavaFile类和递归
八.File类和递归 8.1 概述 java.io.File 类时文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和产出等操作. 8.2 构造方法 public File(String pa ...
- linq partition by
static void Main(string[] args) { var beatles = (new[] { new { id=1 , inst = "guitar" , na ...
- Teams UVA - 11609(快速幂板题)
写的话就是排列组合...但能化简...ΣC(n,i)*C(i,1) 化简为n*2^(n-1) ; #include <iostream> #include <cstdio> # ...
- Django_在单独文件中加载Django环境临时调试
创建Django环境后,每次在打印调试都需要基于项目有些麻烦. 如何在项目外的文件中加载项目环境进行便携的调试? 创建一个新的 orm.py import os if __name__ == '__m ...
- C++11 初始化
C++11 初始化 统一初始化语法 C++11新添加初始化列表 std::initializer_list<>类型,可以通过{}语法来构造初始化列表 .初始化列表是常数:一旦 ...
- 德国GG了
我想起了今年ZJOI 这就是生活啊,伤悲总是要面对的