在/ dev / input / event *中dynamic查找鼠标事件ID

我正在使用这段代码来读取Linux中的鼠标input事件。

#define MOUSEFILE "/dev/input/event13" if((fd = open(MOUSEFILE, O_RDONLY)) == -1) { perror("opening device"); exit(EXIT_FAILURE); } while(read(fd, &ie, sizeof(struct input_event))) { } 

我手动使用terminal中的cat /proc/bus/input/devices来查找连接的鼠标的事件ID,每次我重新启动linux时都会有所不同。 有没有办法通过我可以dynamic地find我连接的鼠标的事件ID。

您可以使用自定义的udev规则保持相同的设备名称。 看到这个例子。

本来,只需在/etc/udev/rule.d下创建一个如下所示的文件:

  KERNEL=="event*", SYSFS{manufacturer}=="Microsoft", SYSFS{idProduct}=="0023", NAME="input/mstrackball" 

你可以在你的sysfs中找到产品ID和其他东西。