POLL
poll是什么
poll是一种多路复用的IO模型,允许一个进程同时监控多个文件描述符是否就绪,当文件就绪时,poll返回可读,可写或异常事件数量,使得程序能够做出相应的处理。
poll怎么用----------在应用层
struct pollfd{
int fd; //文件描述符
short events; //事件类型
short revents; //实际发生的事件
}
int poll (strcut pollfd* fd, nfds_t nfds, int timeout);
其中:fds指向一个pollfd结构体数组的指针, 每一个结构体描述一个被监控的文件描述符。
nfds:监控的文件描述符的数量
timeout:超时时间,-1表示一直等待(阻塞等),0表示不等待(非阻塞),正数表示等待毫秒数。
应用程序中使用了poll对设备文件进行了监控,那么设备驱动就必须实现poll接口
1、返回一个mask值
2、调用poll_wait,将当前的等待队列注册到系统中