获取recv函数返回的错误号

Asu*_*tes -1 c linux errno return-value strerror

如何获取recv()套接字通信recv()返回的错误号或错误字符串,返回-1读取大小,这意味着发生了一些错误.我想知道错误的具体原因.所以我怎么能得到它.

Iha*_*imi 8

您需要包含errno.h并使用errno全局变量来检查上一个错误代码.此外,您还可以使用strerror()打印区域设置感知字符串来解释错误.

#include <errno.h>

ssize_t size;

if ((size = recv( ... )) == -1)
{
    fprintf(stderr, "recv: %s (%d)\n", strerror(errno), errno);
}
Run Code Online (Sandbox Code Playgroud)

  • 一个常见的格式是:`fprintf(stderr, "recv: %s (%d)\n", strerror(errno), errno)` (2认同)
  • 也许在fprintf结尾处缺少的`;`会打扰某人?;) (2认同)
  • 您可以获得冗余分号的支持吗?这几天几乎不值得冒任何回答的风险:( (2认同)