我正在尝试用read()读取文件描述符,但我的程序在那里冻结,一段时间后Killed
。是否有读取文件描述符的超时或检查为什么会发生这种情况的好方法?
我的程序使用gadgetfs在用户空间中读取/写入USB。
谢谢!
这是代码。它是usb.c samle(http://www.linux-usb.org/gadget/usb.c)
struct pollfd ep0_poll;
ep0_poll.fd = gadgetFS_FD;
ep0_poll.events = POLLIN | POLLOUT | POLLHUP;
while(){
int nPoll = poll(&ep0_poll, 1, 250);
if(nPoll == 0)
continue;
if (nPoll < 0) {
printf("poll failed");
}
usb_gadgetfs_event aoEvent [5];
ssize_t nRead = read (ep0_poll.fd, &aoEvent, sizeof aoEvent);
if (nRead < 0) {
if (errno == EAGAIN) {
sleep (1);
continue;
}
printf("ep0 read after poll");
}
...
}