Linux libusb和轮询/选择

Linux libusb和轮询/选择,linux,usb,libusb-1.0,Linux,Usb,Libusb 1.0,我正在使用linux操作系统,不知道是否有任何文件描述符可以轮询/选择,当数据等待从usb设备读取时,这些描述符会触发。我也在使用libusb库,还没有找到可以使用的文件描述符。不,USB设备并不总是“流”设备,因此从文件描述符读取并不总是有意义的。但是,如果您的USB设备提供串行端口驱动程序,您可以侦听串行端口设备上的传入数据(就像操作系统处理的任何其他串行端口一样)。用于将其文件描述符挂接到事件循环中选择将在libusb需要处理的任何活动时唤醒,其中包括但可能不限于可用于读取的数据。好的,这

我正在使用linux操作系统,不知道是否有任何文件描述符可以轮询/选择,当数据等待从usb设备读取时,这些描述符会触发。我也在使用libusb库,还没有找到可以使用的文件描述符。

不,USB设备并不总是“流”设备,因此从文件描述符读取并不总是有意义的。但是,如果您的USB设备提供串行端口驱动程序,您可以侦听串行端口设备上的传入数据(就像操作系统处理的任何其他串行端口一样)。

用于将其文件描述符挂接到事件循环中<代码>选择将在libusb需要处理的任何活动时唤醒,其中包括但可能不限于可用于读取的数据。

好的,这是否也适用于HID设备,该设备将在发送数据之前标记要发送的数据?这些文件描述符纯粹用于处理与libusb相关的事件,并且不是由实际的usb事件触发的。@user2365072:没错,但您可以使用它们来组合事件循环。如果你控制事件循环,你就知道什么时候会调用你的回调。对不起,你能进一步解释一下吗?我已经尝试过轮询那些文件描述符并将数据发送到设备,我知道这些设备会返回消息,但描述符从未被触发。@user2365072:恐怕我自己从来没有实际使用过libusb,所以我只是猜测,但我猜您将消息添加到了它的传出队列中,但从未调用过
libusb\u handle\u events
,因此它从未被发送,因此从未生成回复?哦,好的。实际上,我有一个线程,它不断地调用libusb_handle_事件,而不是将其集成到每个过程中。