调用了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.的主要内容,如果未能解决你的问题,请参考以下文章