码迷,mamicode.com
首页 > 系统相关 > 详细

linux驱动编写之阻塞与非阻塞

时间:2017-05-27 17:13:44      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:文件的   程序   说明   互斥锁   结果   color   flags   休眠   驱动   

一、概念

      应用程序使用API接口,如open、read等来最终操作驱动,有两种结果--成功和失败。成功,很好处理,直接返回想要的结果;但是,失败,是继续等待,还是返回失败类型呢?  如果继续等待,将进程休眠,那么这类驱动设计就是阻塞式的;如果不等待,返回失败的类型(原因),那么这类驱动的设计就是非阻塞式的。

      在应用程序打开驱动文件的时候,可以通过参数向驱动传递使用驱动的方式(阻塞或者非阻塞),通过flags这个参数来传递。当flags中包含“O_NONBLOCK”,就是非阻塞,否则就是阻塞式的。

fd = open("/dev/xxx", O_RDWR | O_NONBLOCK);

二、具体实现

      以按键驱动为例进行说明,主要是利用互斥锁功能来实现。

1、

 

linux驱动编写之阻塞与非阻塞

标签:文件的   程序   说明   互斥锁   结果   color   flags   休眠   驱动   

原文地址:http://www.cnblogs.com/amanlikethis/p/6913376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!