int maxFd = fd + 1;
FD_ZERO(&fds);
FD_SET(fd, &fds);
struct timeval tv;
tv.tv_sec = 10;
int ret = ::select(maxFd, &fds, NULL, NULL, &tv);
上面代码是判断v4l2的fd是否可读, 预期可读时返回1
今天在其他平台下跑代码返回errno= -22
后面检查发现, 是struct timeval
导致的
添加代码
tv.tv_usec = 0;
则没问题
估计是struct timeval
初始值的问题