在/ dev / input / event *中动态查找鼠标事件id

时间:2012-08-29 08:24:36

标签: c++ linux mouse

我正在使用此代码在linux中读取鼠标输入事件。

      #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)))
      {

      }

我在终端中手动使用cat /proc/bus/input/devices来查找我连接的鼠标的事件ID,并且每次重启linux时它都不同。有没有办法可以动态地找到我连接鼠标的事件ID。

1 个答案:

答案 0 :(得分:1)

您可以使用自定义udev规则保留相同的设备名称。例如,请参阅this

当然,只需在/etc/udev/rule.d下创建一个类似这样的文件:

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

您可以在sysfs中找到产品ID和其他内容。