我遇到了一种情况,我必须轮询文件描述符上的事件,该描述符使用ioctl命令进行数据传输(不使用read())。我知道epoll()可以用于文件描述符,文件描述符使用read()和write()进行数据传输。但有些驱动程序使用ioctl命令进行数据传输。我们可以对这些类型的文件描述符使用epoll()吗?。
这取决于驾驶员。从…起 LDD3 :
poll , select 和 epoll 具有基本相同的功能[…] 支持任何这些呼叫都需要设备的支持 驾驶员此支持(适用于所有三个呼叫) 通过 驾驶员的 投票 方法 。此方法具有以下原型: unsigned int (*poll) (struct file *filp, poll_table *wait);
poll , select 和 epoll 具有基本相同的功能[…]
poll
select
epoll
支持任何这些呼叫都需要设备的支持 驾驶员此支持(适用于所有三个呼叫) 通过 驾驶员的 投票 方法 。此方法具有以下原型:
投票
unsigned int (*poll) (struct file *filp, poll_table *wait);
换句话说,驱动程序管理的文件描述符可用于 选择 / 环氧树脂 仅当内部 投票 功能被实现。
选择
环氧树脂