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;

説明

この関数は、内部で Gethostbyaddr サブルーチンを呼び出し、 Gethostbyaddr サブルーチンによって hostent 構造体に戻された値を保管します。

パラメーター

項目 説明
addr 2 進形式のアドレスへのポインターであるホスト・アドレスを指します。
長さ アドレスの長さを指定します。
Type ホスト・アドレスのドメイン・タイプを指定します。 これは、 AF_INET または AF_INET6のいずれかです。
テント Gethostaddr サブルーチンの戻り値を保管するために使用される hostent 構造体を指します。
H_ データ ホスト・データ 構造体を指します。

戻り値

この関数は、成功すれば0を返し、失敗すれば-1を返す。

注: Gethostbyaddr サブルーチンの戻り値は、後続の呼び出しによって上書きされる静的データを指します。 このデータは、後続の呼び出しで使用するために保管する呼び出しごとにコピーする必要があります。 Gethostbyaddr_r サブルーチンはこの問題を解決します。

名前 パラメーターが ホスト名の場合、このサブルーチンはその名前のマシンを IP アドレスとして検索します。 このため、 Gethostbyname_r サブルーチンを使用してください。

エラー・コード

以下のいずれかのエラーが発生すると、 Gethostbyaddr_r サブルーチンは失敗します。
項目 説明
HOST_NOT_FOUND 名前 パラメーターで指定されたホストが見つかりませんでした。
TRY_AGAIN ローカル・サーバーが権限サーバーから応答を受信しませんでした。 後でもう一度試してください。
NO_RECOVERY リカバリー不能エラーが発生したことを示します。
アドレスなし (NO_ADDRESS) 要求された 名前 パラメーターは有効ですが、ネーム・サーバーにインターネット・アドレスがありません。
サービスが使用不可 指定されたネーム・サービスが実行されていないか、または使用可能ではありません。
EINVAL hostent ポインターが NULL です。

ファイル

項目 説明
/etc/hosts ホスト名データベースが入っています。
/etc/resolv.conf ネーム・サーバーとドメイン・ネームが入っています。
/etc/netsvc.conf ネーム・サービスの順序付けが含まれます。
/usr/include/netdb.h ネットワーク・データベース構造が入っています。