SIGPIPE信号
2017-06-03 18:23
183 查看
在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(SIGPIPE, SIG_IGN);
signal(SIGPIPE,
SIG_IGN);
SIGPIPE信号是什么呢?
broken pipe
普遍解释是:当管道的读端 关闭,而写进程继续向管道写数据的时候,就会有SIGPIPE信号
管道为什么要这样设计呢?
通过一个例子我们就可以理解这样设计的妙处了。
看看下面这个命令
yes | head
yes命令不断的打印y
head命令对传入的数据显示前10行
有了SIGPIPE信号后,在head不再读取管道数据后,yes进程捕获到SIGPIPE信号就会停止,
我们就不用特意的去关心yes的关闭,就避免了系统资源的消耗。
由于管道的这种发送SIGPIPE信号的设计,在有的需求中,为了保证写进程正常退出,不受SIGPIPE信号的影响,
就需要对SIGPIPE信号进行屏蔽操作,于是就使用signal(SIGPIPE, SIG_IGN);
相关文章推荐
- 【整理】服务器忽略SIGPIPE信号原因及方法
- 从windows到linux的转换(1):信号与消息以及SIGPIPE 的处理
- linux Socket数据发送中信号SIGPIPE及相关errno的研究
- SIGPIPE信号
- 忽略SIGPIPE信号的方法
- iOS开发socket程序被SIGPIPE信号Terminate的问题
- SIGPIPE信号
- SIGPIPE信号的处理
- iOS 开发中 SIGPIPE信号的分析跟处理
- 关于SIGPIPE信号
- SIGPIPE 信号
- Linux 下的SIGPIPE信号
- 网络编程(三) SIGPIPE信号
- 网络编程学习笔记(SIGPIPE信号触发)
- 关于SIGPIPE信号
- SIGPIPE信号导致进程退出
- C语言之忽略SIGPIPE信号
- (转)关于SIGPIPE信号
- SIGPIPE信号详解
- 关于SIGPIPE信号