首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

UNIX环境高级编程-高级I/O(十四)

2013-09-24 
UNIX环境高级编程--高级I/O(十四)一、概述非阻塞I/O,记录锁、系统V流控制、I/O多路转接(select和poll函数)、re

UNIX环境高级编程--高级I/O(十四)
一、概述

       非阻塞I/O,记录锁、系统V流控制、I/O多路转接(select和poll函数)、readv和writev函数以及存储映射I/O(mmap),这些都是高级I/O

二、非阻塞I/O

       在以前的章节中将系统调用分成“低俗”系统调用和其他系统调用两类。低俗系统调用是可能会使进程永远阻塞的一类系统调用,包括如下调用:

       1)读操作可能会使调用永远阻塞,如数据部存在

       2)写操作可能会使调用者永远阻塞,

        3)在某种条件发生之前,打开某些类型的文件会被阻塞(例如打开一个终端设备可能需等到与之连接的调职解调器应答)

      4)对已经加上强制性记录所的文件进程读写

      5)某些ioctl操作

     6)某些进程间通信函数

     非阻塞I/O使我们调用open、read和write这样的I/O操作,并使这些操作不会永远阻塞。

     对于一个给定的描述符有两种方法对其指定非阻塞I/O

     1)如果调用open获得描述符,则可指定O_NONBLOCK标志

     2)对于已经打开的一个描述符,则可调用fcntl,由该函数打开O_NONBLOCK文件状态标志。

热点排行