文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux键盘驱动(模块动态加载)四

linux键盘驱动(模块动态加载)四

时间:2007-01-29  来源:rayter

linux键盘驱动(模块动态加载)四   八.poll系统调用操作接口函数

   当程序需要进行对多个文件读写时,如果某个文件没有准备好,则系统就会处于读写阻塞的状态,这影响了其他文件的读写,为了避免读写阻塞,一般可以在应用程序中使用poll或者select函数。当poll函数返回时,会给出一个文件是否可读写的标志,应用程序根据不同的标志读写相应的文件,实现非阻塞的读写,poll()函数通过poll系统调用,调用对应设备驱动的poll()接口函数,poll返回不同的标志,告诉主进程文件是否可以读写,这些返回标志存放在include\asm\poll.h中

 

 标志  含义
 POLLIN

 如果设备无阻塞的读,就返回该值

 POLLRDNORM

 通常的数据已经准备好,可以读了,就返回

该值。通常的做法是会返回(POLLLIN|POLLRDNORA)

 POLLRDBAND  如果可以从设备读出带外数据,就返回该值,它只可在linux内核的某些网络代码中使用,通常不用在设备驱动程序中
 POLLPRI  如果可以无阻塞的读取高优先级(带外)数据,就返回该值,返回该值会导致select报告文件发生异常,以为select八带外数据当作异常处理
 POLLHUP  当读设备的进程到达文件尾时,驱动程序必须返回该值,依照select的功能描述,调用select的进程被告知进程时可读的。
 POLLERR  如果设备发生错误,就返回该值。
 POLLOUT  如果设备可以无阻塞地些,就返回该值
 POLLWRNORM  设备已经准备好,可以写了,就返回该值。通常地做法是(POLLOUT|POLLNORM)
 POLLWRBAND  于POLLRDBAND类似
在本章地驱动程序中,Keypad_poll()函数在缓冲区有新数据时(当head!=tail),返回一个POLLIN|POLLRDNORM,告诉主进程有新的
相关阅读 更多 +
排行榜 更多 +
大武道最新版

大武道最新版

休闲益智 下载
宝宝巴士手机版(babybus)

宝宝巴士手机版(babybus)

休闲益智 下载
宝宝巴士快乐启蒙游戏

宝宝巴士快乐启蒙游戏

休闲益智 下载