C语言之忽略SIGPIPE信号
来源:互联网 发布:海康网络键盘视频 编辑:程序博客网 时间:2024/05/31 13:16
#include <stdlib.h>#include <sys/signal.h>void SetupSignal() { struct sigaction sa; //在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。 //这个信号的缺省处理方法是退出进程 //重载这个信号的处理方法,如果接收到一个SIGPIPE信号,忽略该信号 sa.sa_handler = SIG_IGN; sa.sa_flags = 0; //sigemptyset()用来将参数set信号集初始化并清空 if (sigemptyset(&sa.sa_mask) == -1 || sigaction(SIGPIPE, &sa, 0) == -1) { exit(-1); }}int main(int argc, char *argv[]){ SetupSignal(); while(1){} return 0;}
测试方法:
1.执行signal程序
通过另外的一个Linux终端查看程序使用的pid
ps -ef|grep signal
root 4234 3124 93 13:02 pts/3 00:00:06 ./signal
发送信号
kill -SIGPIPE 4234
可以看到signal程序不会退出
2.将main函数中SetupSignal();行注释掉编译
执行signal程序
通过另外的一个Linux终端查看程序使用的pid
ps -ef|grep signal
root 4253 3124 99 13:03 pts/3 00:00:02 ./signal
kill -SIGPIPE 4253
可以看到signal程序退出了
0 0
- C语言之忽略SIGPIPE信号
- 忽略SIGPIPE信号的方法
- [iOS编程-XCode Debug忽略SIGPIPE信号
- [iOS编程-XCode Debug忽略SIGPIPE信号
- gdb中忽略信号处理 SIGPIPE
- Linux下忽略信号SIGPIPE的方法
- iOS编程-XCode Debug忽略SIGPIPE信号
- 【整理】服务器忽略SIGPIPE信号原因及方法
- SIGPIPE信号
- SIGPIPE信号
- SIGPIPE信号
- SIGPIPE信号
- SIGPIPE信号
- SigPipe信号
- SIGPIPE信号
- SIGPIPE信号
- SIGPIPE信号
- SIGPIPE信号
- 无线充电入门讲解
- Linux小技巧记录
- ptrdiff_t示例
- SqlParameter数组
- android中Parcelable接口的使用
- C语言之忽略SIGPIPE信号
- 如何写一封稍微像样的求职邮件
- Displacement Mapping (Direct3D 9)
- linux tar.gz zip 解压缩 压缩命令
- 数据结构基础
- matlab 实践程序4——实现读写.bin二进制文件(ciafr10图片的逆置)
- struts2和servlet共存的几种方法
- Ueeshop:外贸网站报价,从免费到数十万是怎么回事?
- Poj 3544 Journey with Pigs