linux 读取input输入设备demo
2016-03-24 12:05
169 查看
/******************************************************************* * linux 读取input输入设备demo * 说明: * 本文主要是解读以前同事写的input设备的一个demo程序。 * * 2016-3-24 深圳 南山平山村 曾剑锋 ******************************************************************/ #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <fcntl.h> #include <linux/input.h> int main(int argc, char **argv) { int fd; struct input_event ev; // 判断参数 if (argc < 2) { printf("Usage: %s <input device>\n", argv[0]); return 0; } // 打开设备 fd = open(argv[1], O_RDWR); if (fd < 0) { printf("open %s", argv[1]); fflush(stdout); perror(" "); return 0; } // 循环读取 while(1) { // 读取数据 read(fd, &ev, sizeof(struct input_event)); // 打印当前触发类型 printf("ev == %x \n",ev.type ); switch(ev.type) { case EV_SYN: printf("-------------------------\n"); break; // 按键 case EV_KEY: printf("key down / up: %d \n",ev.code ); break; // 鼠标 case EV_REL: printf("mouse: "); if (ev.code == REL_X) { printf(" x -- %d\n", ev.value); } else if (ev.code == REL_Y) { printf(" y -- %d\n", ev.value); } break; // 触摸屏 case EV_ABS: printf("ts: "); if(ev.code == ABS_X) { printf(" x -- %d\n", ev.value); } else if (ev.code == ABS_Y) { printf(" y -- %d\n", ev.value); } else if (ev.code == ABS_PRESSURE) { printf(" pressure: %d\n", ev.value); } break; } } close(fd); return 0; }
相关文章推荐
- linux下的VI命令大全
- parted命令对齐分区,获得最佳性能
- linux下vi命令大全
- Linux下查看文件内容的命令
- Linux系统中nmap网络扫描工具的命令用法详解
- Linux系统中sort排序命令的使用教程
- linux运维实战练习-2016年3月4日-3月19日课程作业
- 3.23linux内核编译学习
- CentOS parted分割大于2TB硬盘的performance问题处理
- 关于在CentOS中使用gdb出现debuginfos调试信息
- IPTABLES 规则(Rules)
- Linux内核Radix Tree
- Linux(CentOS7.0)下 C访问MySQL的各种坑!!!
- 《Linux内核设计与实现》 第十八章学习笔记
- Linux下基本的查找命令和查看信息
- CentOS7使用yum安装ceph rpm包
- Linux学习笔记--命令行下的常用快捷键
- 【读书笔记】Linux内核设计与实现(第五章)
- Linux(CentOS-7.0)下安装MySQL5.6.22
- centos7使用问题总结