普通文件上的Epoll

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

Solutions Collecting From Web of "普通文件上的Epoll"

不是真的。 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