码迷,mamicode.com
首页 > 其他好文 > 详细

非堵塞

时间:2014-08-06 18:20:51      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   文件   数据   div   log   

apue说到非堵塞要分析两种系统调用,低速的系统调用和其它的系统调用。那么低速的系统调用可能是进程堵塞。例如对不存在的数据进行读操作,可能是调用者永远阻塞,因为他得等读到了数据才返回;如果某个文件描述符拒绝某个写操作,写操作不能完成而阻塞;打开某些类型没有准备好的文件的文件也会引起阻塞;以及对强制性记录锁读或写;某些ioctl操作;某些进程间的通信。
非阻塞I/O使我们的操作要么成功,要么立即返回错误,不被阻塞。
对于一个给定的描述符两种方法对其指定非阻塞I/O:
(1)调用open获得描述符,并指定O_NONBLOCK标志
(2)对已经打开的文件描述符,调用fcntl,打开O_NONBLOCK文件状态标志。
int flags,s为描述符

flags = fcntl( s, F_GETFL, 0 ) )

fcntl( s, F_SETFL, flags | O_NONBLOCK )  

 

非堵塞,布布扣,bubuko.com

非堵塞

标签:style   blog   color   io   文件   数据   div   log   

原文地址:http://www.cnblogs.com/notlate/p/3894883.html

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