在LINUX下键盘编程 编写键盘应用程序 能够获取键盘按键

main(){structinput_eventbuf;{structtimevaltime;__u16type;__u16code;__s32value;}fd=ope... main()
{
struct input_event buf;
{
struct timeval time;
__u16 type;
__u16 code;
__s32 value;
}
fd = open("/dev/input/event1" , O_RDWR);
read(fd, buf, la);
printf("buf,type")
不会写 自己大概写的 帮忙纠正下 用GCC调试
展开
 我来答
wujiaheng
推荐于2017-11-25 · TA获得超过232个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:260万
展开全部
提供一个输入按键应用程序实例,你参考一下。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
#include <errno.h>
#include <linux/input.h>
int main(void)
{
int buttons_fd;
int key_value,i=0,count;
struct input_event ev_key;
buttons_fd = open("/dev/input/event0", O_RDWR);
if (buttons_fd < 0) {
perror("open device buttons");
exit(1);
}
for (;;) {
count = read(buttons_fd,&ev_key,sizeof(struct input_event));
for(i=0; i<(int)count/sizeof(struct input_event); i++)
if(EV_KEY==ev_key.type)
printf("type:%d,code:%d,value:%d\n", ev_key.type,ev_key.code-1,ev_key.value);
if(EV_SYN==ev_key.type)
printf("syn event\n\n");
}
close(buttons_fd);
return 0;
}
追问
非常感谢  这个可以  那些代码大概的意思能说明下吗  有的不懂得表达
追答
一开打开一个按键设备,然后从这个按键设备读取数据,因为键盘在Linux中使用输入子系统,所以对应设备数据获取方法也应该是输入子系统结构,所以定义的input_event 这样一个结构来获取数据,根据这个数据结构的成员,定义获取按键数据。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式