gethostbyaddr_r 子例程

用途

按地址获取网络主机项。

Standard C Library (libc.a)
(libbind)
(libnis)
(liblocal)

语法

#include <netdb.h>
int gethostbyadd_r(Addr, Len, Type, Htent, Ht_data)
const char *Addr, size_t Len, int Type, struct hostent *Htent, struct hostent_data *Ht_data;

描述

此函数在内部调用 盖托斯比德尔 子例程,并将 盖托斯比德尔 子例程返回的值存储到主机结构。

参数

描述
地址 指向主机地址,该地址是指向二进制格式地址的指针。
LEN 指定该地址的长度。
TYPE 指定该主机地址的域类型。 它可以是 AF_INETAF_INET6
赫滕特 指向用于存储 盖托斯塔德尔 子例程的返回值的 hostent 结构。
Ht_数据 指向一个 霍斯滕数据 结构。

返回值

如果成功,函数返回 0;如果不成功,函数返回-1。

注: 盖托斯比德尔 子例程的返回值指向将被后续调用覆盖的静态数据。 必须在每次调用时复制此数据,以便保存以供后续调用使用。 Gethostbyaddr_r 子例程解决此问题。

如果 姓名 参数为 主机名,那么此子例程将搜索具有该名称的机器作为 IP 地址。 因此,请使用 gethostbyname_r 子例程。

错误代码

如果发生以下任何错误,那么 Gethostbyaddr_r 子例程不成功:
描述
未找到 HOST_NOT_FOUND 未找到由 姓名 参数指定的主机。
重试 本地服务器未从授权服务器接收到响应。 请稍后重试。
未恢复 指示发生不可恢复错误。
无地址 所请求的 姓名 参数有效,但是在名称服务器上没有因特网地址。
服务不可用 指定的名称服务都未在运行或不可用。
EINVAL Hostent 指针为 NULL

文件

描述
/etc/hosts 包含主机名的数据库。
/etc/resolv.conf 包含名称服务器和域名称。
/etc/netsvc.conf 包含名称服务排序。
/usr/include/netdb.h 包含网络数据库结构。