调用了signal(SIGPIPE, SIG_IGN)仍然出现Program received signal SIGPIPE, Broken pipe.
Posted 上下求索.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用了signal(SIGPIPE, SIG_IGN)仍然出现Program received signal SIGPIPE, Broken pipe.相关的知识,希望对你有一定的参考价值。
问题
调用了signal(SIGPIPE, SIG_IGN)仍然出现Program received signal SIGPIPE, Broken pipe.
解答
GDB调试网络程序时,会遇到SIGPIPE信息,默认GDB会把程序停下来,即使程序使用signal(SIGPIPE, SIG_IGN);来忽略信号。
在gdb模式下运行下面的命令)
handle SIGPIPE nostop print
(gdb) handle SIGPIPE nostop print
Signal Stop Print Pass to program Description
SIGPIPE No Yes Yes Broken pipe
如果连信息提示都不想看见,可以这样设置:
handle SIGPIPE nostop noprint
以上是关于调用了signal(SIGPIPE, SIG_IGN)仍然出现Program received signal SIGPIPE, Broken pipe.的主要内容,如果未能解决你的问题,请参考以下文章
避免SIGPIPE导致的iOS应用闪退/Avoiding SIGPIPE signal crash in iOS(mach_msg_trapSIGPIPE信号)