SIGPIPE信号

在dumpsys源码里,对SIGPIPE信号进行了屏蔽

signal(SIGPIPE, SIG_IGN);


SIGPIPE信号是什么呢?

broken pipe

普遍解释是:当管道的读端 关闭,而写进程继续向管道写数据的时候,就会有SIGPIPE信号


管道为什么要这样设计呢?

通过一个例子我们就可以理解这样设计的妙处了。

看看下面这个命令

yes | head

yes命令不断的打印y

head命令对传入的数据显示前10行


有了SIGPIPE信号后,在head不再读取管道数据后,yes进程捕获到SIGPIPE信号就会停止,

我们就不用特意的去关心yes的关闭,就避免了系统资源的消耗。


由于管道的这种发送SIGPIPE信号的设计,在有的需求中,为了保证写进程正常退出,不受SIGPIPE信号的影响,

就需要对SIGPIPE信号进行屏蔽操作,于是就使用signal(SIGPIPESIG_IGN);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值