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 | ネットワーク・データベース構造が入っています。 |