X-Git-Url: http://git.osdn.net/view?p=linuxjm%2FLDP_man-pages.git;a=blobdiff_plain;f=release%2Fman3%2Fgetnameinfo.3;h=ccced2e5272b70ea53f7b7dd15d958c565b35c3a;hp=d30e8c7fa4cdc7657b3434762c0b50867296853b;hb=4fa3e54b837e5814a4598ec901d77446bf5cb9b3;hpb=f8a251df75590049b7aa6f3cd698b6ce733b1ea5 diff --git a/release/man3/getnameinfo.3 b/release/man3/getnameinfo.3 index d30e8c7f..ccced2e5 100644 --- a/release/man3/getnameinfo.3 +++ b/release/man3/getnameinfo.3 @@ -4,137 +4,83 @@ .\" 2004-12-14, mtk, Added EAI_OVERFLOW error .\" 2004-12-14 Fixed description of error return .\" -.\" Translated 2005-02-26, Akihiro MOTOKI -.\" Updated 2007-01-07, Akihiro MOTOKI, LDP v2.43 -.\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05 -.\" Updated 2010-04-10, Akihiro MOTOKI, LDP v3.24 +.\"******************************************************************* .\" -.TH GETNAMEINFO 3 2009-12-03 "GNU" "Linux Programmer's Manual" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH GETNAMEINFO 3 2009\-12\-03 GNU "Linux Programmer's Manual" .SH 名前 getnameinfo \- アドレスから名前への変換をプロトコルに依存しないかたちで行う .SH 書式 .nf -.B #include -.B #include +\fB#include \fP +\fB#include \fP .sp -.BI "int getnameinfo(const struct sockaddr *" "sa" ", socklen_t " "salen" , -.BI " char *" "host" ", size_t " "hostlen" , -.BI " char *" "serv" ", size_t " "servlen" ", int " "flags" ); +\fBint getnameinfo(const struct sockaddr *\fP\fIsa\fP\fB, socklen_t \fP\fIsalen\fP\fB,\fP +\fB char *\fP\fIhost\fP\fB, size_t \fP\fIhostlen\fP\fB,\fP +\fB char *\fP\fIserv\fP\fB, size_t \fP\fIservlen\fP\fB, int \fP\fIflags\fP\fB);\fP .fi .sp .in -4n -glibc 向けの機能検査マクロの要件 -.RB ( feature_test_macros (7) -参照): +glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照): .ad l .in .sp -.BR getnameinfo (): -_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE +\fBgetnameinfo\fP(): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || +_POSIX_SOURCE .ad b .SH 説明 -.BR getnameinfo () -関数は、 -.BR getaddrinfo (3) -の逆の動作を行う。つまり、プロトコルに依存しないかたちで -ソケットアドレスから対応するホスト名とサービスへの変換を行う。 -この関数は -.BR gethostbyaddr (3) -と -.BR getservbyport (3) -の機能を一つにしたものだが、 -これらの関数と違い、 -.BR getnameinfo (3) -はリエントラントであり、IPv4 と IPv6 の差分に依存しないかたちで -プログラムを書くことができる。 +\fBgetnameinfo\fP() 関数は、 \fBgetaddrinfo\fP(3) の逆の動作を行う。つまり、プロトコルに依存しないかたちで +ソケットアドレスから対応するホスト名とサービスへの変換を行う。 この関数は \fBgethostbyaddr\fP(3) と +\fBgetservbyport\fP(3) の機能を一つにしたものだが、 これらの関数と違い、 \fBgetnameinfo\fP(3) +はリエントラントであり、IPv4 と IPv6 の差分に依存しないかたちで プログラムを書くことができる。 -.I sa -引き数は、 -IP アドレスとポート番号の情報を保持している -汎用的なソケットアドレス構造体 -.RI ( sockaddr_in -型または -.I sockaddr_in6 -型) へのポインタである。 -.I salen -は -.I sa -のサイズである。 -.I host -と -.I serv -引き数は、(それぞれサイズが -.I hostlen -と -.I servlen -の) 呼び出し側で確保されたバッファへのポインタであり、 -ホスト名とサービス名を含む NULL 終端された文字列が -それぞれのバッファに格納される。 +\fIsa\fP 引き数は、 IP アドレスとポート番号の情報を保持している 汎用的なソケットアドレス構造体 (\fIsockaddr_in\fP 型または +\fIsockaddr_in6\fP 型) へのポインタである。 \fIsalen\fP は \fIsa\fP のサイズである。 \fIhost\fP と \fIserv\fP +引き数は、(それぞれサイズが \fIhostlen\fP と \fIservlen\fP の) 呼び出し側で確保されたバッファへのポインタであり、 +ホスト名とサービス名を含む NULL 終端された文字列が それぞれのバッファに格納される。 -ホスト名が不要であることをこの関数に伝えるには、 -.I host -に NULL を指定するか、 -.I hostlen -に 0 を指定する。同様に、サービス名が不要な場合は、 -.I serv -に NULL を指定するか、 -.I servlen -に 0 を指定する。 -しかし、ホスト名とサービス名の両方を不要だと指定することはできない -(いずれか一方は要求すること)。 +ホスト名が不要であることをこの関数に伝えるには、 \fIhost\fP に NULL を指定するか、 \fIhostlen\fP に 0 +を指定する。同様に、サービス名が不要な場合は、 \fIserv\fP に NULL を指定するか、 \fIservlen\fP に 0 を指定する。 +しかし、ホスト名とサービス名の両方を不要だと指定することはできない (いずれか一方は要求すること)。 -.I flags -引き数で -.BR getnameinfo () -の動作を変えることができる。指定できる値は以下の通り: -.TP -.B NI_NAMEREQD +\fIflags\fP 引き数で \fBgetnameinfo\fP() の動作を変えることができる。指定できる値は以下の通り: +.TP +\fBNI_NAMEREQD\fP 指定すると、ホスト名が決定できなかった場合にエラーを返す。 -.TP -.B NI_DGRAM -指定すると、ストリームベース (TCP) でなくデータグラムベース (UDP) -のサービスを対象にする。数は少ないが、 -UDP と TCP で違うサービスを提供しているポート -(512-514) に対して必要となる。 -.TP -.B NI_NOFQDN -指定すると、ローカルなホストには fully qualified domain name (FQDN) の -ホスト名の部分のみを返す。 -.TP -.B NI_NUMERICHOST -指定すると、数値形式のホスト名が返される。 -.\" 例えば -.\" .BR gethostbyaddr () -.\" の代わりに +.TP +\fBNI_DGRAM\fP +指定すると、ストリームベース (TCP) でなくデータグラムベース (UDP) のサービスを対象にする。数は少ないが、 UDP と TCP +で違うサービスを提供しているポート (512\-514) に対して必要となる。 +.TP +\fBNI_NOFQDN\fP +指定すると、ローカルなホストには fully qualified domain name (FQDN) の ホスト名の部分のみを返す。 +.TP +\fBNI_NUMERICHOST\fP +.\" For example, by calling .\" .BR inet_ntop () -.\" を呼ぶ -(指定しなくても、ノードの名前が決定できない場合は数値形式が返ることがある)。 +.\" instead of +.\" .BR gethostbyaddr (). .\" POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it. -.TP -.B NI_NUMERICSERV -指定すると、数値形式のサービス名 (例えばポート番号) が返される -(指定しなくても、サービス名が決定できない場合は数値形式が返ることがある)。 -.SS "国際化ドメイン名のための getnameinfo() の拡張" +指定すると、数値形式のホスト名が返される。 (指定しなくても、ノードの名前が決定できない場合は数値形式が返ることがある)。 +.TP +\fBNI_NUMERICSERV\fP +指定すると、数値形式のサービス名 (例えばポート番号) が返される (指定しなくても、サービス名が決定できない場合は数値形式が返ることがある)。 +.SS "国際化ドメイン名のための getaddrinfo() の拡張" .PP -glibc 2.3.4 から、 -.BR getnameinfo () -に拡張が行われ、ホスト名と -国際化ドメイン名 (Internationalized Domain Name; IDN) 形式との間で -透過的な変換ができるようになっている -(IDN 形式については RFC 3490 の -.I "Internationalizing Domain Names in Applications (IDNA)" +glibc 2.3.4 から、 \fBgetnameinfo\fP() に拡張が行われ、ホスト名と 国際化ドメイン名 (Internationalized +Domain Name; IDN) 形式との間で 透過的な変換ができるようになっている (IDN 形式については RFC 3490 の +\fIInternationalizing Domain Names in Applications (IDNA)\fP を参照)。3つのフラグが新たに定義されている: -.TP -.B NI_IDN -このフラグを指定すると、必要であれば、検索処理で見つかった名前は -IDN 形式からロケールに応じた符号化形式に変換される。 -ASCII 文字だけの名前はこの変換では影響を受けない。このため、 -既存のプログラムや環境でこのフラグを使うことができる。 -.TP -.BR NI_IDN_ALLOW_UNASSIGNED ", " NI_IDN_USE_STD3_ASCII_RULES -これらのフラグをセットすると、IDNA 処理で使用されるフラグ -IDNA_ALLOW_UNASSIGNED (未割り当ての Unicode のコードポイントを許容) と -IDNA_USE_STD3_ASCII_RULES (出力が STD3 準拠のホスト名かをチェックする) +.TP +\fBNI_IDN\fP +このフラグを指定すると、必要であれば、検索処理で見つかった名前は IDN 形式からロケールに応じた符号化形式に変換される。 ASCII +文字だけの名前はこの変換では影響を受けない。このため、 既存のプログラムや環境でこのフラグを使うことができる。 +.TP +\fBNI_IDN_ALLOW_UNASSIGNED\fP, \fBNI_IDN_USE_STD3_ASCII_RULES\fP +これらのフラグをセットすると、IDNA 処理で使用されるフラグ IDNA_ALLOW_UNASSIGNED (未割り当ての Unicode +のコードポイントを許容) と IDNA_USE_STD3_ASCII_RULES (出力が STD3 準拠のホスト名かをチェックする) がそれぞれ有効になる。 .SH 返り値 .\" FIXME glibc defines the following additional errors, some which @@ -148,50 +94,35 @@ IDNA_USE_STD3_ASCII_RULES (出力が STD3 準拠のホスト名かをチェッ .\" #define EAI_INTR -104 /* Interrupted by a signal. */ .\" #define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ .\" #endif -成功すると 0 が返り、(要求されていれば) ノードとサービスの名前が -NULL 終端された文字列の形式でそれぞれの指定バッファに返される -(バッファの長さにあうように縮められるかもしれない)。 -エラーの場合は、以下の 0 以外のエラー・コードが返される: -.TP -.B EAI_AGAIN -指定された名前が現時点では解決できなかった。 -後で再試行してみること。 -.TP -.B EAI_BADFLAGS -.I flags -引き数に不正な値が与えられた。 -.TP -.B EAI_FAIL +成功すると 0 が返り、(要求されていれば) ノードとサービスの名前が NULL 終端された文字列の形式でそれぞれの指定バッファに返される +(バッファの長さにあうように縮められるかもしれない)。 エラーの場合は、以下の 0 以外のエラー・コードが返される: +.TP +\fBEAI_AGAIN\fP +指定された名前が現時点では解決できなかった。 後で再試行してみること。 +.TP +\fBEAI_BADFLAGS\fP +\fIflags\fP 引き数に不正な値が与えられた。 +.TP +\fBEAI_FAIL\fP 回復できないエラーが発生した。 -.TP -.B EAI_FAMILY -指定したアドレスファミリーが認識できなかった。 -あるいはアドレスの長さが指定されたファミリーに合うものでなかった。 -.TP -.B EAI_MEMORY +.TP +\fBEAI_FAMILY\fP +指定したアドレスファミリーが認識できなかった。 あるいはアドレスの長さが指定されたファミリーに合うものでなかった。 +.TP +\fBEAI_MEMORY\fP メモリが足りない。 -.TP -.B EAI_NONAME -与えられたパラメータでは名前が解決できない。 -.B NI_NAMEREQD -が設定されていたがホスト名が決定できなかったか、 +.TP +\fBEAI_NONAME\fP +与えられたパラメータでは名前が解決できない。 \fBNI_NAMEREQD\fP が設定されていたがホスト名が決定できなかったか、 ホスト名もサービス名も要求されなかった。 -.TP -.B EAI_OVERFLOW -.I host -または -.I serv -が指しているバッファが小さすぎた。 -.TP -.B EAI_SYSTEM -システムエラーが起った。 -エラーコードは -.I errno -に設定される。 +.TP +\fBEAI_OVERFLOW\fP +\fIhost\fP または \fIserv\fP が指しているバッファが小さすぎた。 +.TP +\fBEAI_SYSTEM\fP +システムエラーが起った。 エラーコードは \fIerrno\fP に設定される。 .PP -.BR gai_strerror (3) -関数を使うと、これらのエラー・コードを、エラー・レポートに適した -人間が読みやすい文字列に翻訳してくれる。 +\fBgai_strerror\fP(3) 関数を使うと、これらのエラー・コードを、エラー・レポートに適した 人間が読みやすい文字列に翻訳してくれる。 .SH ファイル /etc/hosts .br @@ -199,14 +130,11 @@ NULL 終端された文字列の形式でそれぞれの指定バッファに返 .br /etc/resolv.conf .SH バージョン -.BR getnameinfo () -は、glibc バージョン 2.1 以降で提供されている。 +\fBgetnameinfo\fP() は、glibc バージョン 2.1 以降で提供されている。 .SH 準拠 -RFC\ 2553, POSIX.1-2001. +RFC\ 2553, POSIX.1\-2001. .SH 注意 -適切なバッファサイズを選択できるように、 -.I -に以下の定数が定義されている。 +適切なバッファサイズを選択できるように、 \fI\fP に以下の定数が定義されている。 .in +4n .nf @@ -215,23 +143,13 @@ RFC\ 2553, POSIX.1-2001. .fi .in -glibc 2.8 以降では、機能検査マクロ -.BR _BSD_SOURCE , -.BR _SVID_SOURCE , -.BR _GNU_SOURCE +glibc 2.8 以降では、機能検査マクロ \fB_BSD_SOURCE\fP, \fB_SVID_SOURCE\fP, \fB_GNU_SOURCE\fP のいずれかが定義された場合にのみ、これらの定義が公開される。 .PP -前者は、最近のバージョンの BIND のヘッダファイル -.I -中の定数 -.B MAXDNAME -と同じ値である。 -後者は、割り当て済の数値について記した現在の RFC に -列挙されてサービスから推量した値である。 +前者は、最近のバージョンの BIND のヘッダファイル \fI\fP 中の定数 \fBMAXDNAME\fP +と同じ値である。 後者は、割り当て済の数値について記した現在の RFC に 列挙されてサービスから推量した値である。 .SH 例 -以下のコードは、指定されたソケットアドレスに対する -ホストとサービスの数値表式を取得しようと試みる。 -特定のアドレスファミリーに対する参照情報は +以下のコードは、指定されたソケットアドレスに対する ホストとサービスの数値表式を取得しようと試みる。 特定のアドレスファミリーに対する参照情報は 一切ハードコードされていないことに着目してほしい。 .in +4n @@ -246,8 +164,7 @@ if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf, .fi .in -以下ではソケットアドレスに -逆向きのアドレスマッピングが存在するかをチェックしている。 +以下ではソケットアドレスに 逆向きのアドレスマッピングが存在するかをチェックしている。 .in +4n .nf @@ -263,37 +180,20 @@ else .fi .in .PP -.BR getnameinfo () -を使ったプログラム例が -.BR getaddrinfo (3) -に記載されている。 +\fBgetnameinfo\fP() を使ったプログラム例が \fBgetaddrinfo\fP(3) に記載されている。 .SH 関連項目 -.BR accept (2), -.BR getpeername (2), -.BR getsockname (2), -.BR recvfrom (2), -.BR socket (2), -.BR getaddrinfo (3), -.BR gethostbyaddr (3), -.BR getservbyname (3), -.BR getservbyport (3), -.BR inet_ntop (3), -.BR hosts (5), -.BR services (5), -.BR hostname (7), -.BR named (8) +\fBaccept\fP(2), \fBgetpeername\fP(2), \fBgetsockname\fP(2), \fBrecvfrom\fP(2), +\fBsocket\fP(2), \fBgetaddrinfo\fP(3), \fBgethostbyaddr\fP(3), \fBgetservbyname\fP(3), +\fBgetservbyport\fP(3), \fBinet_ntop\fP(3), \fBhosts\fP(5), \fBservices\fP(5), +\fBhostname\fP(7), \fBnamed\fP(8) .LP -R. Gilligan, S. Thomson, J. Bound and W. Stevens, -.IR "Basic Socket Interface Extensions for IPv6" , -RFC\ 2553, March 1999. +R. Gilligan, S. Thomson, J. Bound and W. Stevens, \fIBasic Socket Interface +Extensions for IPv6\fP, RFC\ 2553, March 1999. .LP -Tatsuya Jinmei and Atsushi Onoe, -.IR "An Extension of Format for IPv6 Scoped Addresses" , -internet draft, work in progress. +Tatsuya Jinmei and Atsushi Onoe, \fIAn Extension of Format for IPv6 Scoped +Addresses\fP, internet draft, work in progress. ftp://ftp.ietf.org/internet\-drafts/draft\-ietf\-ipngwg\-scopedaddr\-format\-02.txt .LP -Craig Metz, -.IR "Protocol Independence Using the Sockets API" , -Proceedings of the freenix track: -2000 USENIX annual technical conference, June 2000. +Craig Metz, \fIProtocol Independence Using the Sockets API\fP, Proceedings of +the freenix track: 2000 USENIX annual technical conference, June 2000. http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/metzprotocol.html