pollfd的结构为:
struct pollfd {
int fd; /* file descriptor */
short events; /* requested events */
short revents; /* returned events */
}
libusb_pollfd的结构为:
struct libusb_pollfd {
int fd; /* Numeric file descriptor. */
short events;
}
poll函数的结构为:
int poll(struct pollfd *fds, nfds_t nfds, int timeout);
轮询 libusb_pollfd 结构列表的正确方法是什么?您是否使用经过某种修改的 poll 函数?或者是否有应该使用的 libusb 函数?
似乎实现此目的的唯一方法是使用以下代码:
struct libusb_pollfd **pollfds;
struct pollfd pollfd_array[n];
pollfds = libusb_get_pollfds(context);
for (i=0; pollfds[i] != NULL; i++)
{
pollfd_array[i].fd = pollfds[i]->fd;
pollfd_array[i].events = pollfds[i]->events;
}
poll_ret = poll(pollfd_array, i, 0);
这正是我试图避免的。如果有更好的方法请告诉我。