【发布时间】:2010-09-15 09:23:43
【问题描述】:
在哪里可以找到所有类型的 bsd 样式套接字错误的列表?
【问题讨论】:
在哪里可以找到所有类型的 bsd 样式套接字错误的列表?
【问题讨论】:
在文档中?例如,对于 connect(),请参阅:
% man connect
...
ECONNREFUSED
No-one listening on the remote address.
EISCONN
The socket is already connected.
ENETUNREACH
Network is unreachable.
【讨论】:
您还可以在 Open Group 的页面上找到每个功能的错误代码列表(及其含义的一般描述)(例如 connect)。
【讨论】:
如果您想知道所有可能的 errno 或它们上的一些 cmets,您可以查看头文件,在 Linux 系统上位于
如果您想知道调用的 errno 是什么,例如socket() 或 connect() 可以返回,当安装开发手册并尝试 man socket 或 man connect
【讨论】:
许多函数会将errno 设置为失败,与其自己通过errno.h 并将错误号转换为字符串,不如调用perror。
perror 会将当前errno 的对应消息打印到stderr,并带有可选前缀。
示例用法:
if (connect())
{
perror("connect() failed in function foo");
...
}
perror 有名为 strerror 和 strerror_r 的朋友,如果您想捕获字符串以在 stderr 以外的地方使用,他们可能会很有用。
【讨论】: