使用异步io
在4 . 3 + B S D中,异步I / O是两个信号S I G I O和S I G U R G的组合。前者是通用异步I / O信号,后
者则只被用来通知进程在网络连接上到达了非规定波特率的数据。
为了接收S I G I O信号,需执行下列三步:
(1) 调用s i g n a l或s i g a c t i o n为该信号建立一个信号处理程序。
(2) 以命令F _ SETOWN调用f c n t l来设置进程I D和进程组I D,它们将接收对于
该描述符的信号。
(3) 以命令F _ S E T F L调用f c n t l设置O_ASYNC状态标志,使在该描述符上可以进行异步I / O
第( 3 )步仅用于指向终端或网络的描述符,这是4 . 3 + B S D异步传输设施的一个基本的限制。
对于S I G U R G信号,只需执行第( 1 )步和第( 2 )步。该信号仅对于指向支持带外数据的网络连
接的描述符而产生。