如果用户应用程序以非阻塞的方式访问设备,设备驱动程序就要提供非阻塞的处理方式,也就是轮询。
- poll、epoll 和 select 可以用于处理轮询
- 应用程序通过 select、epoll 或 poll 函数来查询设备是否可以操作,如果可以操作的话就从设备读取或者向设备写入数据。
- 当应用程序调用 select、epoll 或 poll 函数的时候设备驱动程序中的
poll
函数就会执行,因此需要在设备驱动程序中编写 poll 函数
。
先来看一下应用程序中使用的 select 这个函数,poll 和 epoll 的使用待补充
函数原型及参数解析
函数原型
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,