FIFO 与O_NOBLOCK

一般的I/O(open close read write unlink)函数都可以用于FIFO文件,需要注意的是,在使用open函数打开一个FIFO文件时,open函数参数flag标志位的O_NONBLOCK标志,它关系到函数的返回状态。详细说明如表14-2所示。
表14-2 open函数的flag(O_NONBLOCK)详细说明
O_NONBLOCK标志
详 细 说 明
置位
只读open立即返回。当只写open时,如果没有进程为读打开FIFO,则返回–1,并置 errno值为ENXIO
不置位
open视情况阻塞。只读open要阻塞到有进程为写打开FIFO,只写open要阻塞到有进程为读打开FIFO
FIFO的写操作规则类似于匿名管道的写操作规则,当没有进程为读打开FIFO,调用 write函数来进行写操作会产生信号SIGPIPE,则信号可以被捕捉或者完全忽略。
%注意:当FIFO的所有写进程都已经关闭,则为FIFO的读进程产生一个文件结束符。

转载于:https://www.cnblogs.com/rabbit0212/p/11301633.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值