是否建议在bash脚本中捕获SIGPIPE? < >我在使用C++调用系统时从C++执行BASH脚本时遇到了问题。 脚本捕获一个SIGPIPE信号,并返回code141退出

是否建议在bash脚本中捕获SIGPIPE? < >我在使用C++调用系统时从C++执行BASH脚本时遇到了问题。 脚本捕获一个SIGPIPE信号,并返回code141退出,c++,c,linux,bash,C++,C,Linux,Bash,这个问题只在我的代码的上一个版本中出现 我的问题如下: 为什么这个信号管现在出现,以前没有出现过 忽略信号管安全吗?后果如何 1) 如果不知道你到底改变了什么,很难回答这个问题。 2) 如果一系列命令出现在管道中,并且其中一个读取命令在写入程序完成之前完成,则写入程序将收到SIGPPIPE信号。因此,您是否可以忽略它取决于您的脚本是否可以接受这种行为。更多信息链接到州: 从bash-3.1开始,默认情况下bash不会报告SIGPIPE错误。你 可以生成报告此类错误的bash版本 是否可能是您更改

这个问题只在我的代码的上一个版本中出现

我的问题如下:

  • 为什么这个信号管现在出现,以前没有出现过
  • 忽略信号管安全吗?后果如何
  • 1) 如果不知道你到底改变了什么,很难回答这个问题。
    2) 如果一系列命令出现在管道中,并且其中一个读取命令在写入程序完成之前完成,则写入程序将收到SIGPPIPE信号。因此,您是否可以忽略它取决于您的脚本是否可以接受这种行为。更多信息链接到州:

    从bash-3.1开始,默认情况下bash不会报告SIGPIPE错误。你 可以生成报告此类错误的bash版本


    是否可能是您更改了Bash版本或其构建方式,从而导致代码中的行为发生了变化?

    您可以发布一些相关的代码片段吗?正如答案中所解释的,某个地方有一个断管,因此出现了
    SIPIPE
    信号。这意味着你使用的逻辑有问题。你不应该忽视它。