代码之家  ›  专栏  ›  技术社区  ›  Chinna

我们可以使用epoll()对使用ioctl进行数据传输的描述符进行轮询吗

  •  2
  • Chinna  · 技术社区  · 9 年前

    我遇到了一种情况,我必须轮询文件描述符上的事件,该描述符使用ioctl命令进行数据传输(不使用read())。我知道epoll()可以用于文件描述符,文件描述符使用read()和write()进行数据传输。但有些驱动程序使用ioctl命令进行数据传输。我们可以对这些类型的文件描述符使用epoll()吗?。

    1 回复  |  直到 9 年前
        1
  •  1
  •   cnicutar    9 年前

    这取决于驾驶员。从…起 LDD3 :

    poll , select epoll 具有基本相同的功能[…]

    支持任何这些呼叫都需要设备的支持 驾驶员此支持(适用于所有三个呼叫) 通过 驾驶员的 投票 方法 。此方法具有以下原型:

    unsigned int (*poll) (struct file *filp, poll_table *wait);
    

    换句话说,驱动程序管理的文件描述符可用于 选择 / 环氧树脂 仅当内部 投票 功能被实现。