在 Solaris 上套接字发送/接收可以返回 errno 27 (EFBIG) 吗?

发布于 2024-09-24 01:23:55 字数 61 浏览 4 评论 0原文

Solaris 上套接字发送/接收可以设置 errno 27 (EFBIG) 吗?什么情况下会发生这种情况?

Can socket send / recv set errno 27 (EFBIG) on Solaris? Under which condition this happens?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听风念你 2024-10-01 01:23:55

man receive< /a> 没有记录 EFBIG 这意味着如果您看到它,则说明您在操作系统中遇到了错误。请联系 Sun Oracle Solaris 支持。

如果您使用的是 OpenSolaris,愚蠢的搜索表明套接字本身不返回 EBIG(在 sys/common/inet/ 下没有匹配项;例如与搜索 ENOBUFS 进行比较)。对我来说,这表明您可能:

  • 参数超出了某个安全限制。例如,经典的 -1u 字节甚至在到达套接字 API 之前就会被捕获。 (不太可能使用其他错误代码。)
  • 在错误的套接字/文件描述符上使用 send/recv。

man recv doesn't document EFBIG meaning that if you see it, you have encountered a bug in the OS. Contact the Sun Oracle Solaris support.

If you are on the OpenSolaris, the dumb search reveals that sockets themselves do not return EFBIG (no matches under sys/common/inet/; compare e.g. with search for ENOBUFS). To me that tells that you might:

  • have a parameter exceeding some safety limit. e.g. classical -1u bytes which would be caught even before reaching the sockets API. (unlikely for that other error codes are used.)
  • use send/recv on a wrong socket/file descriptor.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文