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

Dynamically find the mouse event id in /dev/input/event*

本文关键字:查找 鼠标 id 动态 事件 dev input event      更新时间:2023-10-16

我正在使用此代码读取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。

您可以使用自定义udev规则保持相同的设备名称。请参见此示例。

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

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

您可以在系统中找到产品id和其他内容。