无法从filedescriptor读取,程序被杀死

时间:2013-12-10 12:20:02

标签: c++ linux iostream file-descriptor

我正在尝试用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");
            }

                  ...

    }

0 个答案:

没有答案