Linux 下的SIGPIPE信号
来源:互联网 发布:初级会计知乎 编辑:程序博客网 时间:2024/05/16 08:48
在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。
这个信号的缺省处理方法是退出进程,大多数时候这都不是我们期望的。因此我们需要重载这个信号的处理方法。调用以下代码,即可安全的屏蔽SIGPIPE:
//忽略SIGPIPE 信号
signal(SIGPIPE,SIG_IGN);
如果用GDB进行调试,则
在RUN之前,加上
handle SIGPIPE nostop print
忽略SIGPIPE信号的方法
struct sigaction sa;
sa.sa_handler = SIG_IGN;//设定接受到指定信号后的动作为忽略
sa.sa_flags = 0;
if (sigemptyset(&sa.sa_mask) == -1 || //初始化信号集为空
sigaction(SIGPIPE, &sa, 0) == -1) { //屏蔽SIGPIPE信号
perror("failed to ignore SIGPIPE; sigaction");
exit(EXIT_FAILURE);
}
sa.sa_handler = SIG_IGN;//设定接受到指定信号后的动作为忽略
sa.sa_flags = 0;
if (sigemptyset(&sa.sa_mask) == -1 || //初始化信号集为空
sigaction(SIGPIPE, &sa, 0) == -1) { //屏蔽SIGPIPE信号
perror("failed to ignore SIGPIPE; sigaction");
exit(EXIT_FAILURE);
}
0 0
- Linux 下的SIGPIPE信号
- Linux 下的SIGPIPE信号
- Linux下忽略信号SIGPIPE的方法
- Linux下服务器遭遇SIGPIPE信号
- Linux下SIGPIPE信号及其处理
- Linux下SIGPIPE信号及其处理
- [linux] SIGPIPE信号处理
- linux下网络程序遭遇SIGPIPE信号进程退出的原因及规避方法
- SIGPIPE信号的处理
- Linux中SIGPIPE信号说明
- linux 遭遇SIGPIPE信号,导致进程退出的问题
- 忽略SIGPIPE信号的方法
- 关于sigaction 的 SIGPIPE 信号
- SIGPIPE信号
- SIGPIPE信号
- SIGPIPE信号
- SIGPIPE信号
- SIGPIPE信号
- EhCache介绍
- OpenCV中不同深度的元素在C++中的保存类型
- socket关闭的close和shutdown区别[转]
- phpstudy20140706
- 影响研发进度的关键在哪里
- Linux 下的SIGPIPE信号
- 玩转STM32F0 Value Line Discovery 之 认识板载资源
- Visual Studio 2010 出现关于ActivityLog.xml错误的解决方案
- 黑马程序员--Java学习16--String
- 启动linux文件系统遇到的问题记录
- Tomcat帐号
- 设计模式之命令模式
- hadoop学习之Hbase安装
- 十金幣的