日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
RESOLVER(3) FreeBSD ライブラリ関数マニュアル RESOLVER(3) 名称 res_query, res_search, res_mkquery, res_send, res_init, dn_comp, dn_expand, dn_skipname, ns_get16, ns_get32, ns_put16, ns_put32 -- リゾル バ (resolver) ルーチン ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/types.h> #include <netinet/in.h> #include <arpa/nameser.h> #include <resolv.h> int res_query(const char *dname, int class, int type, u_char *answer, int anslen); int res_search(const char *dname, int class, int type, u_char *answer, int anslen); int res_mkquery(int op, const char *dname, int class, int type, const u_char *data, int datalen, const u_char *newrr_in, u_char *buf, int buflen); int res_send(const u_char *msg, int msglen, u_char *answer, int anslen); int res_init(void); int dn_comp(const char *exp_dn, u_char *comp_dn, int length, u_char **dnptrs, u_char **lastdnptr); int dn_expand(const u_char *msg, const u_char *eomorig, const u_char *comp_dn, char *exp_dn, int length); int dn_skipname(const u_char *comp_dn, const u_char *eom); u_int ns_get16(const u_char *src); u_long ns_get32(const u_char *src); void ns_put16(u_int src, u_char *dst); void ns_put32(u_long src, u_char *dst); 解説 これらのルーチンは、問い合わせを作成し、送信し、解釈するために使用され、 インターネットドメインネームサーバでメッセージを応答します。 リゾルバルーチン (名前解決プログラム) によって使用されるグローバルな設定 と状態の情報は、構造体 _res に保持されます。ほとんどの値は、適切なデフォ ルトがあり、無視することができます。_res.options に格納されるオプション は、<resolv.h> で定義され、次の通りです。オプションは、有効にされたオプ ションのビット単位の論路和 ``or'' を含んでいる簡単なビットマスクとして格 納されます。 RES_INIT 初期のネームサーバアドレスとデフォルトのドメイン名が初期化 される (すなわち、res_init() が呼び出される) なら、真で す。 RES_DEBUG デバッグメッセージを印刷 (表示) します。 RES_AAONLY 信頼すべき応答のみ受け付けます。このオプションで、 res_send() は、それが信頼すべき応答を見つけるか、またはエ ラーを見つけるまで、継続するべきです。現在、これは、実装さ れていません。 RES_USEVC UDP データグラムの代わりに問い合わせのために TCP 接続を使 用します。 RES_STAYOPEN 問い合わせの間に TCP 接続をオープンしたままにするために RES_USEVC を使用します。これは、多くの問い合わせを定期的に 行うプログラムでのみ役に立ちます。UDP は、通常モードで使用 されるべきです。 RES_IGNTC 現在未使用です (切り捨てエラーを無視します、すなわち、TCP で再試行しません)。 RES_RECURSE 問い合わせで再帰要求ビットを設定します。これは、デフォルト です。(res_send() は、繰り返し問い合わせを行わず、再帰を処 理するためにネームサーバを期待します。) RES_DEFNAMES 設定されるなら、res_search() は、デフォルトのドメイン名を (ドットを含まない) 単一構成要素の名前に追加します。このオ プションは、デフォルトで有効にされます。 RES_DNSRCH このオプションが設定されるなら、res_search() は、現在のド メインと親ドメインでホスト名を検索します。hostname(7) を参 照してください。これは、標準のホスト検索ルーチン gethostbyname(3) によって使用されます。このオプションは、 デフォルトで有効にされます。 RES_NOALIASES このオプションは、``HOSTALIASES'' 環境変数によって制御され るユーザレベルのエイリアシング機能をオフにします。ネット ワークデーモンは、このオプションを設定するべきです。 RES_USE_INET6 IPv6 のみのアプリケーションのためのサポートを有効にしま す。これによって、IPv4 アドレスは、IPv4 にマップされたアド レスとして返されます。訳注: IPv6 にマップされたアドレスと して返されます。の誤りか? 例えば、10.1.1.1 は、 ::ffff:10.1.1.1 として返されます。オプションは、特定のカー ネル設定でのみ意味があります。 RES_USE_EDNS0 EDNS0 拡張のための OPT pseudo-RR のサポートを有効にしま す。オプションで、リゾルバコードは、受信バッファサイズを知 らせるために OPT pseudo-RR を DNS 問い合わせにアタッチしま す。オプションによって、DNS サーバは、デフォルトでない受信 バッファサイズをうまく利用することができ、より大きな応答を 送信することができます。EDNS0 拡張がある DNS 問い合わせパ ケットは、非 EDNS0 DNS サーバと互換性がありません。 res_init() ルーチンは、デフォルトのドメイン名、検索リストとローカルな (複 数の) ネームサーバのインターネットアドレスを取得するために、設定ファイル (もしあるなら、resolver(5) を参照) を読み込みます。サーバが設定されていな いなら、ホストで実行しているリゾルバは、試みられます。現在のドメイン名 は、設定ファイルで指定されないなら、ホスト名によって定義されます。それ は、環境変数 LOCALDOMAIN によって上書きすることができます。この環境変数 は、利用者が、プロセスに基づいて検索リストを上書きしたいなら、いくつかの 空白で区切られたトークンを含みます。これは、設定ファイルの search コマン ドに似ています。特定の内部のリゾルバオプションを上書きするするために別の 環境変数 ``RES_OPTIONS'' を設定することができます、そうでなければ、_res 構造体のフィールドを変更することによって設定するか、または設定ファイルの options コマンドから継承されます。``RES_OPTIONS'' 環境変数の構文は resolver(5) で説明されています。通常、次のルーチンの 1 つへの最初の呼び出 しで初期化が起こります。 res_query() 関数は、サーバ問い合わせメカニズムへのインタフェースを提供し ています。それは、問い合わせを構成し、それをローカルサーバに送信し、応答 を待ち、応答で予備的なチェックを行います。問い合わせは、指定された完全な 形でのドメイン名 dname のための指定された type と class の情報を要求しま す。応答メッセージは、呼び出し側によって供給される長さ anslen で answer バッファに残されます。 res_search() ルーチンは、問い合わせをし、res_query() のような応答を待ちま すが、さらに、それは、RES_DEFNAMES と RES_DNSRCH オプションによって制御さ れるデフォルトと検索規則を実装しています。それは、最初に成功した応答を返 します。 残りルーチンは、res_query() によって使用される低レベルのルーチンです。 res_mkquery() 関数は、標準の問い合わせメッセージを構成し、それを buf に置 きます。それは、問い合わせのサイズを返すか、または問い合わせが、buflen よ りの大きいなら、-1 を返します。問い合わせタイプ op は、通常 QUERY です が、<arpa/nameser.h> で定義された問い合わせタイプのいずれかを指定すること ができます。問い合わせのためのドメイン名は、dname によって与えられます。 newrr_in 引数は、現在未使用ですが、更新メッセージを作成することを対象とし ています。 res_send() ルーチンは、あらかじめ書式化された問い合わせを送信し、答えを返 します。RES_INIT が設定されないなら、それは、res_init() を呼び出し、ロー カルネームサーバに問い合わせを送信し、タイムアウトと再試行を処理します。 応答メッセージの長さが返されるか、またはエラーがあったなら、-1 を返しま す。 dn_comp() 関数は、ドメイン名 exp_dn を圧縮し、それを comp_dn に格納しま す。圧縮された名前のサイズが返されるか、またはエラーがあったなら、-1 を返 します。comp_dn によって指された配列のサイズは、length によって与えられま す。圧縮は、現在のメッセージの以前に圧縮された名前へのポインタ dnptrs の 配列を使用します。最初のポインタは、メッセージリストの始めを指し、リスト は、NULL で終わります。配列への制限は、lastdnptr によって指定されます。 dn_comp() の副作用は、名前が圧縮されるようにメッセージに挿入されるラベル のためのポインタのリストを更新することです。dnptr が NULL であるなら、名 前は、圧縮されません。lastdnptr が NULL であるなら、ラベルのリストは、更 新されません。 dn_expand() エントリは、圧縮されたドメイン名 comp_dn を完全なドメイン名に 展開します。圧縮された名前は、問い合わせまたは応答メッセージに含まれてい ます。msg は、メッセージの始めへのポインタです。圧縮されていない名前は、 サイズ length の exp_dn によって示されるバッファに置かれます。圧縮された 名前のサイズが返されるか、またはエラーがあったなら、-1 を返します。 dn_skipname() 関数は、comp_dn によって指された位置で始まる圧縮されたドメ イン名をスキップします。圧縮された名前は、問い合わせまたは応答メッセージ に含まれています。eom は、メッセージの終わりへのポインタです。圧縮された 名前のサイズが返されるか、またはエラーがあったなら、-1 が返されます。 ns_get16() 関数は、src によって指されたバッファから 16 ビットの量を取得し ます。 ns_get32() 関数は、src によって指されたバッファから 32 ビットの量を取得し ます。 ns_put16() 関数は、16 ビットの量 src を dst によって指されたバッファに置 きます。 ns_put32() 関数は、32 ビットの量 src を dst によって指されたバッファに置 きます。 実装に関する注 リゾルバのこの実装は、スレッドセーフですが、プログラマが、そのマクロに よって参照されるスレッドごとのバージョンを置き換える試みでプログラマ自身 で _res 構造体を宣言することを試みるなら、それは、適切に機能しません。 必要なときに、リゾルバルーチンのデフォルトの振る舞いを変更するために次の コンパイル時オプションを指定することができます。 RES_ENFORCE_RFC1034 このシンボルがコンパイル時に定義されるなら、 res_search() は、RFC 1034 チェックを強制します、すな わち、ホスト名内の下線文字の使用を許可しません。これ は、gethostbyname(3) のような標準のホスト検索ルーチ ンによって使用されます。互換性の理由のために、このオ プションは、デフォルトで有効にされていません。 戻り値 res_init() 関数は、成功すれば、0 を返し、スレッドごとの記憶域を割り付ける ことができなかったなら、スレッド化されたプログラムで -1 を返します。 res_mkquery(), res_search() と res_query() 関数は、成功すれば、応答のサイ ズを返し、エラーが起こるなら、-1 を返します。整数 h_errno は、エラーの理 由を決定するためにチェックされます。詳細については、gethostbyname(3) を参 照してください。 関連ファイル /etc/resolv.conf 設定ファイル。resolver(5) を参照。 関連項目 gethostbyname(3), resolver(5), hostname(7), named(8) RFC1032, RFC1033, RFC1034, RFC1035, RFC974 Name Server Operations Guide for BIND. 歴史 res_query 関数は、4.3BSD で登場しました。 FreeBSD 11.4 May 29, 2009 FreeBSD 11.4