普通文件上的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