普通文件上的Epoll

epoll (在Linux上)对普通文件有用吗? 我知道它主要用于套接字,但只是想知道。


不是真的。 epoll只对文件描述符有意义,通常在读/写时会出现阻塞行为,如管道和套接字。 普通的文件描述符会一直或多或少地立即返回一个结果或文件结束,所以epoll不会对它们做任何有用的事情。


我认为,EPERM会在epoll_ctl上失败:

   EPERM  The target file fd does not support epoll.

如果该文件没有poll()接口。

实际的代码是http://lxr.linux.no/#linux+v3.1/fs/eventpoll.c#L1373

1373    /* The target file descriptor must support poll */
1374        error = -EPERM;
1375        if (!tfile->f_op || !tfile->f_op->poll)
1376                goto error_tgt_fput;
1377
链接地址: http://www.djcxy.com/p/61339.html

上一篇: Epoll on regular files

下一篇: How can I print the value in this stackT?