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

C++ 在/dev/input/event中动态查找鼠标事件id*,c++,linux,mouse,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)))

我正在使用此代码读取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和其他内容。

正确的方法是编写自定义udev规则。。。但是为什么不直接使用
/dev/input/mices
?它的输入事件格式是否与/dev/input/event*相同,因为我已经编写了一个很长的代码,不想更改它。不,它不共享相同的格式。