免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11577 | 回复: 6
打印 上一主题 下一主题

怎样处理SIGPIPE信号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-08 19:39 |只看该作者 |倒序浏览
如果你在读取一个管道、套接口、FIFO等设备时,当写入端关闭连接时,你将会得到一个文件结束符(EOF)(read()返回零字节读取)。
    如果你试图向一个管道或套接口写入,当读取方关闭连接,你将得到一个SIGPIPE的信号,它会使进程终止除非指定处理方法。(如果你选择屏蔽或忽略信号,write()会以EPIPE错误退出。)

-----------------------------------
      问题是:
    读取的时候好处理,写入应该怎么处理???
    有相关的源码吗?

论坛徽章:
0
2 [报告]
发表于 2003-03-09 00:56 |只看该作者

怎样处理SIGPIPE信号

这个只有判断recv()<0

论坛徽章:
0
3 [报告]
发表于 2003-03-09 18:24 |只看该作者

怎样处理SIGPIPE信号

在send的时候当然也要处理了,
不处理SIGPIPE信号,
就退出进程了。。

信号我是会处理,用sigaction函数就可以捕捉到了,
但关键问题是我用kylix3编译程序,
错误信息由kylix捕捉了,

怎么办呢?

论坛徽章:
0
4 [报告]
发表于 2008-05-08 11:14 |只看该作者
signal(SIGPIPE,SIG_IGN);

论坛徽章:
0
5 [报告]
发表于 2008-05-08 11:28 |只看该作者
直接屏蔽掉,如果捕捉到,就把相应的fd  关闭就好了

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
6 [报告]
发表于 2008-05-08 12:50 |只看该作者
send(,,,MSG_NOSIGNAL)

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
7 [报告]
发表于 2008-05-08 23:14 |只看该作者
关键在于,如果对方关闭了,而你已经知道对方关闭的情况下,你准备干什么?准备干什么就怎么写。SIGPIPE是可捕捉的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP