gpt4 book ai didi

io - 过滤掉断管错误

转载 作者:IT老高 更新时间:2023-10-28 13:10:27 24 4
gpt4 key购买 nike

我收到 io.Copy 调用返回的 error,我已将套接字 (TCPConn) 作为目的地。预计远程主机会在他们受够了之后简单地断开连接,而我没有收到他们的任何信息。

发生掉落时,我收到此错误:

write tcp 192.168.26.5:21277: broken pipe

但我只有一个 error 接口(interface)。如何区分断管错误和其他类型的错误?

if err.Errno == EPIPE...

最佳答案

损坏的管道错误在 syscall 包中定义。您可以使用相等运算符将错误与系统调用中的错误进行比较。查看 http://golang.org/pkg/syscall/#constants获取系统调用错误的完整列表。在页面上搜索“EPIPE”,您会发现所有已定义的错误组合在一起。

if err == syscall.EPIPE {
/* ignore */
}

如果您希望获得实际的 errno 编号(尽管它非常无用),您可以使用类型断言:

if e, ok := err.(syscall.Errno); ok {
errno = uintptr(e)
}

关于io - 过滤掉断管错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11003692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com