所以在我的应用程序开始时我打电话给
signal(SIGPIPE, SIG_IGN);
我认为我的应用程序会忽略SIGPIPE。但是我仍然遇到以下代码的SIGPIPE崩溃:
write(fd, outgoingStr->c_str(), size);
其中fd是int(文件描述符),size是字符串的大小。我在这里做错了什么?
另一方面,我最近用来将if包装在if中以检查返回的错误值,并且我相信在删除之前我从未遇到过SIGPIPE崩溃。如果出现错误,if check只会对控制台进行cout,所以我不确定它是否相关。
答案 0 :(得分:2)
问题最终是GDB将在SIGPIPE上停止,即使它被忽略了。正常运行应用程序时,它按预期工作。