问题标签 [sigpipe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
784 浏览

linux - 在Linux crontab中,我的程序的stderr必须重定向,为什么?

我写了一个程序,可以输出到stderr. 当我通过 Linux 运行它时crontab,我必须重定向stderr. 如果没有,程序将以SIGPIPE. 为什么?

不好

好的

0 投票
1 回答
1072 浏览

perl - Perl 写入文件流导致意外的 SIGPIPE 错误

我有以下 perl 代码尝试将字符串写入新创建的文件:

通常,此代码可以正常工作。如果我们对 $file 所在的目录没有写权限,程序就会失败,这是意料之中的。但是,不是打印“文件输出错误!” 作为错误消息,程序只是以退出代码 13(权限被拒绝)退出。

  1. 当我们无法写入文件时,为什么 open 方法会成功?
  2. 在这种情况下,我们如何获得适当的错误消息?
0 投票
3 回答
1576 浏览

linux - 防止 SIGPIPE

让我们考虑以下示例。

我有一个父进程创建一个管道,生成一个子进程并使用该管道读取子进程的标准输出。在某些时候,父进程不再对子进程的输出感兴趣,并关闭管道的读取端。

显然,如果孩子继续写,这是否会导致子进程收到SIGPIPE信号。

问题:有没有办法将子进程的输出重定向到/dev/null它仍然继续运行并产生输出,但父进程可以继续做其他事情并waitpid稍后调用子进程?请注意,将孩子的SIGPIPE处理程序设置SIG_IGN为不是一个选项,因为我无法控制孩子的信号处理程序。

0 投票
3 回答
2575 浏览

c - 连接到环回地址时的管道损坏 (EPIPE)

我目前正在测试我的网络代码。这涉及通过 IPv4 环回地址 (127.0.0.1) 建立连接。不幸的是,程序经常(并非总是)在发送数据时给出 EPIPE 错误。

我正在使用伯克利网络套接字和 libevent。我通过以下方式制作了一个非阻塞套接字:

我通过以下方式进行连接事件:

并通过以下方式添加:

连接:

连接后,会发生 canSend 事件:

但是发送经常会出现 EPIPE 错误:

它登陆return CB_SOCKET_FAILURE;并且 errno 设置为 EPIPE。现在为什么会这样?如果设置了发送标志,则它只是 MSG_NOSIGNAL,因为 SIGPIPE 一直以这个错误中断程序。我希望 EPIPE 导致 CBSocketSend 返回 CB_SOCKET_FAILURE 并且不中断程序,但是 EPIPE 没有原因导致发送失败,那么为什么要这样做呢?

上次我收到错误时,我注意到连接的线程仍在 connect() 调用中。使连接事件由单独的线程而不是连接的线程处理是否有危险?

在这些地方查看网络代码:

https://github.com/MatthewLM/cbitcoin/blob/master/test/testCBNetworkCommunicator.c https://github.com/MatthewLM/cbitcoin/tree/master/src/structures/CBObject/CBNetworkCommunicator https://github。 com/MatthewLM/cbitcoin/tree/master/dependencies/sockets

谢谢你。

编辑:我再次运行它,在 connect() 完成后出现错误。

编辑 2:似乎连接事件是在没有对方接受的情况下给出的。

0 投票
1 回答
2451 浏览

python - Errno 32 Broken pipe, Errno 107 Transport endpoint is not connected python socket

我的 TCP Server 是用 Qt 4.7 编写的,可以与同样用 Qt 4.7 编写的 TCP Client 配合使用。

我正在尝试使用用 python 2.7.3 编写的客户端与服务器连接和通信。我通过 apache http 请求启动服务器进程subprocess.call(path_to_server)。我正在使用 mod_wsgi 3.3 和 django 1.4。

建立连接没有问题。我随机收到[Errno 32] Broken pipe异常socket.send()(我可以发送相同的消息 10 次,它将被发送 0-10 次)。socket.shutdown()&也发生同样的情况socket.close(),我可以发送垃圾邮件断开命令,它会随机断开连接,否则会收到[Errno 107] Transport endpoint is not connected异常。

netstat -nap 表示连接已建立。

当我尝试使用 python2.7 shell 运行相同的客户端脚本时,一切正常。

我在这里想念什么?

EDIT 一切都在 Windows 7 上运行,运行相同的 apache、mod_wsgi、python、django 配置。TCP Server 也与 Windows 兼容。centos6.2 32bit 发生错误。

0 投票
1 回答
719 浏览

linux - Linux SIGPIPE 崩溃服务器

所以在我的应用程序开始时,我打电话给

我认为我的应用程序会忽略 SIGPIPE。但是,我仍然使用以下代码导致 SIGPIPE 崩溃:

其中 fd 是一个 int(文件描述符),size 是字符串的大小。我在这里做错了什么?

附带说明一下,我最近使用将该写入包装在 if 中以检查返回的错误值,并且我相信在将其删除之前我从未遇到过 SIGPIPE 崩溃。如果出现错误,if 检查除了 cout 之外什么也没做,所以我不确定它是否相关。

0 投票
0 回答
506 浏览

soap - tcp_disconnect 上的 SIGPIPE(断管)执行客户端(WCF Soap 1.1 和服务器)

我正在使用 gSOAP lib 开发一个 Qt 客户端 (C++),它应该与 Microsoft (WCF) 的 Web 服务讨论。我在两边都使用 SOAP 1.1。

我的客户端代码如下:

问题:当我执行程序时,我在“tcp_disconnect”函数中得到一个 SIGPIPE(Broken pipe),正好在“r = SSL_shutdown (soap-> ssl);”这一行。

生成的错误消息:

错误 -1 故障:SOAP-ENV:客户端 [无子代码]“文件结束或无输入:操作中断或超时”详细信息:[无详细信息]

你知道为什么吗?如果您需要更多资源或信息,请告诉我!

提前非常感谢,

大声笑。

0 投票
1 回答
2850 浏览

objective-c - 集成了 BUMP API 的 iOS 项目中的 SIGPIPE 异常

SIGPIPE在 Xcode 项目中遇到错误。从一周前开始显示此错误。如果我评论了这个方法调用:[self configureBump];一切正常。我在我的项目中集成了BUMP API 。这个 API 一直工作到一周前没有任何问题。我不确定这个错误的原因。谁能帮我解决这个错误?有的朋友也报这个错误。

Xcode 版本:4.5 iOS 版本:iOS 6.0/iOS 5.0

请参阅下面的堆栈跟踪:

0 投票
1 回答
1036 浏览

iphone - 如何避免 SIG_PIPE 在 IOS 中崩溃

我一直面临着 SIGPIPE 经常崩溃,我知道这是因为连接问题,我的一个套接字在失去连接后试图写入,但问题是我在这里无法控制套接字描述符(将 tcp 类作为 .a ),设置 signal() 像 IGNORE 或 NO_SIGPIPE。所以任何方式都可以使用 Xcode。任何建议都对我很有帮助。

谢谢

0 投票
10 回答
236029 浏览

python - IOError:[Errno 32] 管道时管道损坏:`prog.py | 其他命令`

我有一个非常简单的 Python 3 脚本:

但它总是说:

我在网上看到了解决这个问题的所有复杂方法,但是我直接复制了这段代码,所以我认为代码有问题而不是 Python 的 SIGPIPE。

我正在重定向输出,所以如果上面的脚本被命名为“open.py”,那么我要运行的命令是: