#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>
intmain(void)
{
intbuttons_fd;
intkey_value,i=0,count;
structinput_eventev_key;
buttons_fd=open("/dev/event0",O_RDWR);
if(buttons_fd<0){
perror("opendevicebuttons");
exit(1);
}
for(;;){
count=read(buttons_fd,&ev_key,sizeof(structinput_event));
//printf("count=%d\n",count);
for(i=0;i<(int)count/sizeof(structinput_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("synevent\n\n");
}
close(buttons_fd);
return0;
}
这段简单的输入子系统应用程序中read(buttons_fd,&ev_key,sizeof(structinput_event));就是说input_event保存在设备文件中?
还有就是i<(int)count/sizeof(structinput_event);我觉得就是1啊,read调用后不是就是返回读取的字节数吗?
求各位指导