全部博文(573)
发布时间:2015-12-09 16:04:19
select(poll)在应用程序中如何使用select()和poll()系统调用的本质一样,前者在BSD UNIX中引入的,后者在System V中引入的。一、select应用程序中最广泛用到的是BSD UNIX中引入的select()系统调用,其原型如下:int select(int maxfdp, fd_set *readfds, fd_set *writefds, fd_set *er.........【阅读全文】
发布时间:2015-12-09 16:03:23
select(poll)分析背景我们编写驱动程序的时候,通常需要告诉上层应用程序设备的状态:是否可读写。 应用程序可以直接通过read/write系统调用(阻塞和非阻塞模式)进入内核态驱动程序,那么驱动程序的read/write至少需要支持阻塞和非阻塞模式的读写: 上层阻塞模式调用read时,.........【阅读全文】
发布时间:2015-12-09 16:01:00
select(poll)系统调用实现解析(三)三、讨论几个细节3.1、fop->poll() fop->poll()函数就是file_operations结构体中的poll函数指针项,该函数相信很多人都知道怎么写,网上大把的文章介绍其模板,但是为什么要那么写,而且它做了什么具体的事情?本.........【阅读全文】
发布时间:2015-12-09 15:59:55
select(poll)系统调用实现解析(二)二、重要结构体之间关系 比较重要的结构体由四个:struct poll_wqueues、struct poll_table_page、struct poll_table_entry、struct poll_table_struct,这小节重点讨论前三个,后面一个留到后面小节。 &nbs.........【阅读全文】
发布时间:2015-12-09 15:58:05
select(poll)系统调用实现解析(一) 上层要能使用select()和poll()系统调用来监测某个设备文件描述符,那么就必须实现这个设备驱动程序中struct file_operation结构体的poll函数,为什么?因为这两个系统调用最终都会调用驱动程序中的poll函数来初始化一个等待队列项, 然后将.........【阅读全文】