我刚从linux中的connect API收到错误。
我知道如果连接成功,'connect'将返回零,我得到返回值“3”
是错误代码吗?或者还有什么不知道的东西?
Chef::Config[:log_level] = :warn
我从袜子里得到了价值3。
答案 0 :(得分:5)
要获得connect()
的返回值,最简单的方法是使用一个用作作业左侧的变量。
int result = connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
printf("connect returned: %d\n", result);
sock
必须是套接字,并且在调用socket()
时被分配了文件描述符编号。返回新文件描述符的大多数UNIX API将返回最低的可用文件描述符。程序通常从描述符0
,1
和2
开始使用(对于STDIN,STDOUT和STDERR)。因此,socket()
返回3
并不意外。
答案 1 :(得分:0)
在linux系统(通常是posix)中,您可以使用perror
函数来了解失败原因:
if (0 != connect(...))
{
perror("connect");
}
请参阅man perror