如何区分/dev/input/event

  方法是把每一个/dev/input/event打开。通过ioctl函数来读取设备name,每一个设备name是固定的,可以根据name区分event。我这是查找触摸事件为例:代码如下:

 1 static int getTouchEventNum()
 2 {
 3     char          name[64];           /* RATS: Use ok, but could be better */  
 4     char          buf[256] = { 0, };  /* RATS: Use ok */  
 5     int           fd = 0;   
 6     int           i;    
 7     for (i = 0; i < 32; i++) 
 8     {  
 9         sprintf(name, "/dev/input/event%d", i);  
10         if ((fd = open(name, O_RDONLY, 0)) >= 0) 
11         {  
12             ioctl(fd, EVIOCGNAME(sizeof(buf)), buf);   
13             if(strstr(buf, "MTOUC Touch"))
14             {
15                 close(fd);
16                 return i;
17             }
18             //printf("%s
", name);  
19             //printf("name: %s
", buf);           
20             close(fd);  
21         }
22     }
23     return -1;
24 }

 这个函数的目的就是返回名字里有 MTOUC Touch 这个字段的event设备号,MTOUC Touch这个就是触摸的设备名字。

原文地址:https://www.cnblogs.com/winfu/p/5629764.html