应用程序使用一个while循环不断读取/dev/input/event1
读取到有效键值时打印状态
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>
// 先声明一个input_event用于接收键值
struct input_event key_event;
unsigned int readtimes = 0xffffffff;
int main(int argc, char *argv[])
{
int fd;
int ret;
fd = open("/dev/input/event1",O_RDONLY);
if(0>fd)
{
perror("open /dev/input/event1");
exit(1);
}
while(readtimes)
{
readtimes--;
// 从驱动中读取input_event数据
ret = read(fd,&key_event,sizeof(struct input_event));
if(0>ret)
{
perror("read /dev/input/event1");
exit(1);
}
else
{
if( (EV_KEY==key_event.type)&&(KEY_DOWN==key_event.code) ) // 读到键值
{
if(0<key_event.value)
printf("APP>> KEY_DOWN pressed!\n");
else
printf("APP>> KEY_DOWN released!\n");
}
}
}
printf("APP>> routine complete!\n");
return 0;
}