OSDN Git Service

(split) Convert release and draft pages to UTF-8.
[linuxjm/LDP_man-pages.git] / release / man3 / getaddrinfo.3
index e29daed..c8e6faa 100644 (file)
 .\" Updated 2008-12-26, Akihiro MOTOKI, LDP v3.15
 .\" Updated 2010-04-18, Akihiro MOTOKI, LDP v3.24
 .\"
-.\"WORD:       null pointer    ¥Ì¥ë¡¦¥Ý¥¤¥ó¥¿
+.\"WORD:       null pointer    ã\83\8cã\83«ã\83»ã\83\9dã\82¤ã\83³ã\82¿
 .\"
 .TH GETADDRINFO 3 2010-09-27 "GNU" "Linux Programmer's Manual"
-.SH Ì¾Á°
+.SH 名前
 getaddrinfo, freeaddrinfo, gai_strerror \-
-¥Í¥Ã¥È¥ï¡¼¥¯¤Î¥¢¥É¥ì¥¹¤È¥µ¡¼¥Ó¥¹¤òÊÑ´¹¤¹¤ë
-.SH ½ñ¼°
+ネットワークのアドレスとサービスを変換する
+.SH 書式
 .nf
 .B #include <sys/types.h>
 .B #include <sys/socket.h>
@@ -71,9 +71,9 @@ getaddrinfo, freeaddrinfo, gai_strerror \-
 .fi
 .sp
 .in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
 .RB ( feature_test_macros (7)
-»²¾È):
+参照):
 .ad l
 .in
 .sp
@@ -84,40 +84,40 @@ glibc 
 _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE
 .RE
 .ad b
-.SH ÀâÌÀ
+.SH 説明
 .BR getaddrinfo ()
-¤Ï¡¢(¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥Û¥¹¥È¤È¥µ¡¼¥Ó¥¹¤ò¼±Ê̤¹¤ë)
+は、(インターネットのホストとサービスを識別する)
 .I node
-¤È
+と
 .I service
-¤òÅϤ¹¤È¡¢°ì¤Ä°Ê¾å¤Î
+を渡すと、一つ以上の
 .I addrinfo
-¹½Â¤ÂΤòÊÖ¤¹¡£¤½¤ì¤¾¤ì¤Î
+構造体を返す。それぞれの
 .I addrinfo
-¹½Â¤ÂΤˤϡ¢
+構造体には、
 .BR bind (2)
-¤ä
+や
 .BR connect (2)
-¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë»ØÄê¤Ç¤­¤ë¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥É¥ì¥¹¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£
+を呼び出す際に指定できるインターネットアドレスが格納されている。
 .BR getaddrinfo ()
-´Ø¿ô¤Ï¡¢
+関数は、
 .\" .BR getipnodebyname (3),
 .\" .BR getipnodebyaddr (3),
 .BR getservbyname (3)
-¤È
+と
 .BR getservbyport (3)
-¤Îµ¡Ç½¤ò¤Þ¤È¤á¤Æ°ì¤Ä¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤·¤¿¤â¤Î¤Ç¤¢¤ë¤¬¡¢
-¤³¤ì¤é¤Î´Ø¿ô¤È°ã¤¤¡¢
+の機能をまとめて一つのインターフェースにしたものであるが、
+これらの関数と違い、
 .BR getaddrinfo ()
-¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ê¡¢
+はリエントラントであり、
 .BR getaddrinfo ()
-¤ò»È¤¦¤³¤È¤Ç¥×¥í¥°¥é¥à¤Ï IPv4 ¤È IPv6 ¤Î°ã¤¤¤Ë´Ø¤¹¤ë°Í¸´Ø·¸¤ò
-¤Ê¤¯¤¹¤³¤È¤¬¤Ç¤­¤ë¡£
+を使うことでプログラムは IPv4 と IPv6 の違いに関する依存関係を
+なくすことができる。
 .PP
 .BR getaddrinfo ()
-¤¬ÍѤ¤¤ë
+が用いる
 .I addrinfo
-¹½Â¤ÂΤϰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤ò´Þ¤à¡£
+構造体は以下のフィールドを含む。
 .sp
 .in +4n
 .nf
@@ -135,319 +135,319 @@ struct addrinfo {
 .in
 .PP
 .I hints
-°ú¤­¿ô¤Ï
+引き数は
 .I addrinfo
-¹½Â¤ÂΤò»Ø¤·¼¨¤·¡¢¤³¤Î¹½Â¤ÂΤòÍѤ¤¤Æ
+構造体を指し示し、この構造体を用いて
 .I res
-¤¬»Ø¤¹¥ê¥¹¥È¤ËÆþ¤ì¤ÆÊÖ¤¹¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¹½Â¤ÂΤòÁªÂò¤¹¤ë¤¿¤á¤Î´ð½à¤ò»ØÄꤹ¤ë¡£
+が指すリストに入れて返すソケットアドレス構造体を選択するための基準を指定する。
 .I hints
-¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢
+が NULL でない場合、
 .I hints
-¤Ï
+は
 .I addrinfo
-¹½Â¤ÂΤò»Ø¤·¼¨¤·¡¢¤½¤Î¹½Â¤ÂΤΥե£¡¼¥ë¥É
+構造体を指し示し、その構造体のフィールド
 .IR ai_family ,
 .IR ai_socktype ,
 .I ai_protocol
-¤Ç
+で
 .BR getaddrinfo ()
-¤¬ÊÖ¤¹¥½¥±¥Ã¥È¥¢¥É¥ì¥¹½¸¹ç¤ËÂФ¹¤ë´ð½à¤ò»ØÄꤹ¤ë¡£
+が返すソケットアドレス集合に対する基準を指定する。
 .TP 12
 .I ai_family
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤Î´õ˾¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò»ØÄꤹ¤ë¡£
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë»ØÄê¤Ç¤­¤ëÍ­¸ú¤ÊÃͤȤ·¤Æ¤Ï
+このフィールドは返されるアドレスの希望のアドレスファミリーを指定する。
+このフィールドに指定できる有効な値としては
 .B AF_INET
-¤È
+と
 .B AF_INET6
-¤¬¤¢¤ë¡£
-¤Þ¤¿¡¢ÃÍ
+がある。
+また、値
 .B AF_UNSPEC
-¤ò»ØÄꤹ¤ë¤È¡¢
+を指定すると、
 .BR getaddrinfo ()
-¤Ï
+は
 .I node
-¤È
+と
 .I service
-¤Ç»ÈÍѤǤ­¤ë¤¤¤º¤ì¤«¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼ (Î㤨¤Ð IPv4 ¤« IPv6) ¤Î
-¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤òÊÖ¤¹¤³¤È¤òµá¤á¤é¤ì¤ë¡£
+で使用できるいずれかのアドレスファミリー (例えば IPv4 か IPv6) の
+ソケットアドレスを返すことを求められる。
 .TP
 .I ai_socktype
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¿ä¾©¤Î¥½¥±¥Ã¥È·¿ (Î㤨¤Ð
+このフィールドは推奨のソケット型 (例えば
 .B SOCK_STREAM
-¤ä
+や
 .BR SOCK_DGRAM )
-¤ò»ØÄꤹ¤ë¡£
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¡¢Ç¤°Õ¤Î¥½¥±¥Ã¥È·¿¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ò
+を指定する。
+このフィールドに 0 を指定すると、任意のソケット型のソケットアドレスを
 .BR getaddrinfo ()
-¤¬ÊÖ¤·¤Æ¤è¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+が返してよいことを意味する。
 .TP
 .I ai_protocol
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ë¡£
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ë 0 ¤ò»ØÄꤹ¤ë¤È¡¢Ç¤°Õ¤Î¥×¥í¥È¥³¥ë¤Î¤Î¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ò
+このフィールドは返されるソケットアドレスのプロトコルを指定する。
+このフィールドに 0 を指定すると、任意のプロトコルののソケットアドレスを
 .BR getaddrinfo ()
-¤¬ÊÖ¤·¤Æ¤è¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+が返してよいことを意味する。
 .TP
 .I ai_flags
-¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢ÄɲäΥª¥×¥·¥ç¥ó (²¼µ­) ¤ò»ØÄꤹ¤ë¡£
-Ê£¿ô¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ëºÝ¤Ë¤Ï¡¢¤½¤ì¤é¤Î¥Ó¥Ã¥Èñ°Ì¤Î OR ¤ò¤È¤Ã¤Æ»ØÄꤹ¤ë¡£
+このフィールドは、追加のオプション (下記) を指定する。
+複数のフラグを指定する際には、それらのビット単位の OR をとって指定する。
 .PP
 .I hints
-¤¬»Ø¤·¼¨¤¹¹½Â¤ÂΤξ¤Î¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï
-0 ¤« NULL ¥Ý¥¤¥ó¥¿¤òŬÀÚ¤ËÆþ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+が指し示す構造体の他のすべてのフィールドには
+0 か NULL ポインタを適切に入れなければならない。
 .I hints
-¤Ë NULL ¤ò»ØÄꤹ¤ë¤Î¤Ï¡¢
+に NULL を指定するのは、
 .I ai_socktype
-¤È
+と
 .I ai_protocol
-¤Ë 0 ¤ò¡¢
+に 0 を、
 .I ai_family
-¤Ë
+に
 .B AF_UNSPEC
-¤ò¡¢
+を、
 .I ai_flags
-¤Ë
+に
 .B "(AI_V4MAPPED\ |\ AI_ADDRCONFIG)"
-¤òÀßÄꤹ¤ë¤Î¤ÈÅù²Á¤Ç¤¢¤ë¡£
+を設定するのと等価である。
 
 .I node
-¤Ë¤Ï¡¢¿ôÃÍ·Á¼°¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹
-(IPv4 ¤Î¾ì¹ç¤Ï
+ã\81«ã\81¯ã\80\81æ\95°å\80¤å½¢å¼\8fã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\89ã\83¬ã\82¹
+(IPv4 の場合は
 .BR inet_aton (3)
-¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»ú¤Ë¤è¤ëɽµ­¡¢
-IPv6 ¤Î¾ì¹ç¤Ï
+でサポートされているドット区切りの数字による表記、
+IPv6 の場合は
 .BR inet_pton (3)
-¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë 16 ¿Ê¿ô¤Îʸ»úÎó·Á¼°) ¤â¤·¤¯¤Ï
-¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È̾¤ò»ØÄꤹ¤ë¡£
-¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È̾¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¸¡º÷¤µ¤ì¡¢
-̾Á°²ò·è¤¬¹Ô¤Ê¤ï¤ì¤ë¡£
+でサポートされている 16 進数の文字列形式) もしくは
+ネットワークホスト名を指定する。
+ネットワークホスト名を指定した場合には、そのネットワークアドレスが検索され、
+名前解決が行なわれる。
 .I hints.ai_flags
-¤Ë
+に
 .B AI_NUMERICHOST
-¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢
+フラグが含まれている場合は、
 .I node
-¤Ï¿ôÃÍ·Á¼°¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+は数値形式のネットワークアドレスでなければならない。
 .B AI_NUMERICHOST
-¥Õ¥é¥°¤ò»È¤¦¤È¡¢»þ´Ö¤Î³Ý¤«¤ë²ÄǽÀ­¤Î¤¢¤ë¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¥¢¥É¥ì¥¹¤Î¸¡º÷¤Ï
-¤¹¤Ù¤ÆÍÞÀ©¤µ¤ì¤ë¡£
+フラグを使うと、時間の掛かる可能性のあるネットワークホストアドレスの検索は
+すべて抑制される。
 .PP
 .IR hints.ai_flags
-¤Ë
+に
 .B AI_PASSIVE
-¥Õ¥é¥°¤¬»ØÄꤵ¤ì¡¢¤«¤Ä
+フラグが指定され、かつ
 .I node
-¤¬ NULL ¤Î¾ì¹ç¡¢
-ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï
-¥³¥Í¥¯¥·¥ç¥ó¤ò
+が NULL の場合、
+返されるソケットアドレスは
+コネクションを
 .BR accept (2)
-¤¹¤ë¤¿¤á¤Î¥½¥±¥Ã¥È¤ò
+するためのソケットを
 .BR bind (2)
-¤¹¤ë¤Î¤ËŬ¤·¤¿¤â¤Î¤È¤Ê¤ë¡£
-ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ë¤Ï¡Ö¥ï¥¤¥ë¥É¥«¡¼¥É¡¦¥¢¥É¥ì¥¹¡×
-(IPv4 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï
-.BR INADDR_ANY ¡¢
-IPv6 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï
+するのに適したものとなる。
+返されるソケットアドレスには「ワイルドカード・アドレス」
+(IPv4 アドレスの場合は
+.BR INADDR_ANY 
+IPv6 アドレスの場合は
 .BR IN6ADDR_ANY_INIT )
-¤¬Æþ¤ë¡£
-¥ï¥¤¥ë¥É¥«¡¼¥É¡¦¥¢¥É¥ì¥¹¤Ï¡¢Ç¤°Õ¤Î¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤ÇÀܳ¤ò
-¼õ¤±ÉÕ¤±¤è¤¦¤È¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (Ä̾ï¤Ï¥µ¡¼¥Ð¡¼) ¤ÇÍѤ¤¤é¤ì¤ë¡£
+が入る。
+ワイルドカード・アドレスは、任意のホストのネットワークアドレスで接続を
+受け付けようとするアプリケーション (通常はサーバー) で用いられる。
 .I node
-¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢
+が NULL でない場合、
 .B AI_PASSIVE
-¥Õ¥é¥°¤Ï̵»ë¤µ¤ì¤ë¡£
+フラグは無視される。
 .PP
 .I hints.ai_flags
-¤Ë
+に
 .B AI_PASSIVE
-¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
-ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ï
+フラグがセットされていない場合、
+返されるソケットアドレスは
 .BR connect (2),
 .BR sendto (2),
 .BR sendmsg (2)
-¤Ç¤Î»ÈÍѤËŬ¤·¤¿¤â¤Î¤È¤Ê¤ë¡£
+での使用に適したものとなる。
 .I node
-¤¬ NULL ¤Î¾ì¹ç¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ë¤Ï¥ë¡¼¥×¥Ð¥Ã¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î
-¥¢¥É¥ì¥¹ (IPv4 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï
+が NULL の場合、ネットワークアドレスにはループバック・インターフェイスの
+アドレス (IPv4 アドレスの場合は
 .BR INADDR_LOOPBACK
-IPv6 ¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ï
-.BR IN6ADDR_LOOPBACK_INIT ) ¤¬ÀßÄꤵ¤ì¤ë¡£
-¤³¤ì¤ÏƱ¤¸¥Û¥¹¥È¾å¤ÇÆ°ºî¤·¤Æ¤¤¤ëÀܳÁê¼ê¤ÈÄÌ¿®¤¹¤ë¤è¤¦¤Ê
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÇÍѤ¤¤é¤ì¤ë¡£
+IPv6 アドレスの場合は
+.BR IN6ADDR_LOOPBACK_INIT ) が設定される。
+これは同じホスト上で動作している接続相手と通信するような
+アプリケーションで用いられる。
 .PP
 .I service
-¤Ë¤è¤ê¡¢ÊÖ¤µ¤ì¤ë³Æ¥¢¥É¥ì¥¹¹½Â¤ÂΤΥݡ¼¥ÈÈֹ椬·è¤Þ¤ë¡£
-¤³¤Î°ú¤­¿ô¤¬¥µ¡¼¥Ó¥¹Ì¾
+により、返される各アドレス構造体のポート番号が決まる。
+この引き数がサービス名
 .RB ( services (5)
-»²¾È) ¤Î¾ì¹ç¡¢Âбþ¤¹¤ë¥Ý¡¼¥ÈÈÖ¹æ¤ËËÝÌõ¤µ¤ì¤ë¡£
-¤³¤Î°ú¤­¿ô¤Ë¤Ï 10 ¿Ê¿ô¤â»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¡¢
-¤³¤Î¾ì¹ç¤Ë¤Ï¥Ð¥¤¥Ê¥ê¤Ø¤ÎÊÑ´¹¤À¤±¤¬¹Ô¤ï¤ì¤ë¡£
+参照) の場合、対応するポート番号に翻訳される。
+この引き数には 10 進数も指定することができ、
+この場合にはバイナリへの変換だけが行われる。
 .I service
-¤¬ NULL ¤Î¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¥Ý¡¼¥ÈÈÖ¹æ¤Ï
-½é´ü²½¤µ¤ì¤Ê¤¤¤Þ¤Þ¤È¤Ê¤ë¡£
+が NULL の場合、返されるソケットアドレスのポート番号は
+初期化されないままとなる。
 .I hints.ai_flags
-¤Ë
+に
 .B AI_NUMERICSERV
-¤¬»ØÄꤵ¤ì¡¢¤«¤Ä
+が指定され、かつ
 .I service
-¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢
+が NULL でない場合、
 .I service
-¤Ï¿ôÃͤΥݡ¼¥ÈÈÖ¹æ¤ò´Þ¤àʸ»úÎó¤ò»Ø¤·¼¨¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-¤³¤Î¥Õ¥é¥°¤Ï¡¢Ì¾Á°²ò·è¥µ¡¼¥Ó¥¹¤¬ÉÔÍפǤ¢¤ë¤³¤È¤¬Ê¬¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢
-¥µ¡¼¥Ó¥¹¤Îµ¯Æ°¤òÍÞÀ©¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£
+は数値のポート番号を含む文字列を指し示さなければならない。
+このフラグは、名前解決サービスが不要であることが分かっている場合に、
+サービスの起動を抑制するために用いられる。
 .PP
 .I node
-¤È
+と
 .I service
-¤Î¤É¤Á¤é¤«¤Ï NULL ¤Ë¤·¤Æ¤è¤¤¤¬¡¢Î¾ÊýƱ»þ¤Ë NULL ¤Ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+のどちらかは NULL にしてよいが、両方同時に NULL にしてはならない。
 .PP
 .BR getaddrinfo ()
-´Ø¿ô¤Ï¡¢
+関数は、
 .I addrinfo
-¹½Â¤ÂΤΥá¥â¥ê³ÎÊݤò¹Ô¤¤¡¢
+構造体のメモリ確保を行い、
 .I addrinfo
-¹½Â¤ÂΤΥê¥ó¥¯¥ê¥¹¥È¤ò½é´ü²½¤·¡¢
+構造体のリンクリストを初期化し、
 .I res
-¤Ë¥ê¥¹¥È¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÆþ¤ì¤ÆÊÖ¤¹¡£
-¤³¤Î¤È¤­¡¢³Æ¹½Â¤ÂΤΥͥåȥ¥¯¥¢¥É¥ì¥¹¤Ï
+にリストの先頭へのポインタを入れて返す。
+このとき、各構造体のネットワークアドレスは
 .I node
-¤È
+と
 .I service
-¤Ë°ìÃפ·¡¢
+に一致し、
 .I hints
-¤Ç²Ý¤µ¤ì¤¿¤¹¤Ù¤Æ¤ÎÀ©¸Â¤òËþ¤¿¤¹¤â¤Î¤È¤Ê¤ë¡£
-¥ê¥ó¥¯¥ê¥¹¥È¤ÎÍ×ÁǤÏ
+で課されたすべての制限を満たすものとなる。
+リンクリストの要素は
 .I ai_next
-¥Õ¥£¡¼¥ë¥É¤Ë¤è¤êÏ¢·ë¤µ¤ì¤ë¡£
+フィールドにより連結される。
 
-¥ê¥ó¥¯¥ê¥¹¥È¤Î
+リンクリストの
 .I addrinfo
-¹½Â¤ÂΤÏÊ£¿ô¸Ä¤Ë¤Ê¤ë¤³¤È¤â¤¢¤ê¡¢¤½¤ÎÍýͳ¤Ï¤¤¤¯¤Ä¤«¤¢¤ë¡£
-¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤¬¥Þ¥ë¥Á¥Û¡¼¥à¤Ç¤¢¤ë¡¢
-Ê£¿ô¤Î¥×¥í¥È¥³¥ë¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤ë (Î㤨¤Ð
+構造体は複数個になることもあり、その理由はいくつかある。
+ネットワークホストがマルチホームである、
+複数のプロトコルでアクセスできる (例えば
 .B AF_INET
-¤È
+と
 .B AF_INET6
-¤ÎξÊý) ¡¢
-Ê£¿ô¤Î¥½¥±¥Ã¥È¼ïÊ̤ÇƱ¤¸¥µ¡¼¥Ó¥¹¤¬ÍøÍѤǤ­¤ë
-(Î㤨¤Ð¡¢¤Ò¤È¤Ä¤¬
+の両方) 、
+複数のソケット種別で同じサービスが利用できる
+(例えば、ひとつが
 .B SOCK_STREM
-¥¢¥É¥ì¥¹¤Ç¡¢¤â¤¦¤Ò¤È¤Ä¤¬
+アドレスで、もうひとつが
 .B SOCK_DGRAM
-¥¢¥É¥ì¥¹¤Ç¤¢¤ë)¡¢¤¬¤¢¤ë¡£
-Ä̾ï¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÏÊÖ¤µ¤ì¤¿½ç½ø¤Ç¥¢¥É¥ì¥¹¤ò»î¤¹¤Ù¤­¤Ç¤¢¤ë¡£
+アドレスである)、がある。
+通常は、アプリケーションは返された順序でアドレスを試すべきである。
 .BR getaddrinfo ()
-¤ÎÃæ¤Ç»ÈÍѤµ¤ì¤ëʤÙÂؤ¨´Ø¿ô¤Ï RFC\ 3484 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
-Æüì¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢
+の中で使用される並べ替え関数は RFC\ 3484 で定義されている。
+特殊なシステムでは、
 .I /etc/gai.conf
-¤òÊÔ½¸¤¹¤ë¤³¤È¤Ç¡¢¤³¤Î½ç½ø¤òÈùÄ´À°¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë
+を編集することで、この順序を微調整することができる
 .RI ( /etc/gai.conf
-¤Ï glibc 2.5 °Ê¹ß¤ÇÍøÍѤǤ­¤ë)¡£
+は glibc 2.5 以降で利用できる)。
 .PP
 .I hints.ai_flags
-¤Ë
+に
 .B AI_CANONNAME
-¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ÊÖ¤µ¤ì¤ë¥ê¥¹¥È¤ÎºÇ½é¤Î
+フラグが含まれている場合、返されるリストの最初の
 .I addrinfo
-¹½Â¤ÂΤÎ
+構造体の
 .I ai_canonname
-¥Õ¥£¡¼¥ë¥É¤Ï¥Û¥¹¥È¤Î¸ø¼°¤Ê̾Á°¤ò»Ø¤¹¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£
+フィールドはホストの公式な名前を指すように設定される。
 .\" In glibc prior to 2.3.4, the ai_canonname of each addrinfo
 .\" structure was set pointing to the canonical name; that was
 .\" more than POSIX.1-2001 specified, or other implementations provided.
 .\" MTK, Aug 05
 
-ÊÖ¤µ¤ì¤ë³Æ¡¹¤Î
+返される各々の
 .I addrinfo
-¹½Â¤ÂΤλĤê¤Î¥Õ¥£¡¼¥ë¥É¤Ï°Ê²¼¤Î¤è¤¦¤Ë½é´ü²½¤µ¤ì¤ë¡£
+構造体の残りのフィールドは以下のように初期化される。
 .IP * 2
 .IR ai_family ,
 .IR ai_socktype ,
 .I ai_protocol
-¥Õ¥£¡¼¥ë¥É¤Ï¥½¥±¥Ã¥ÈÀ¸À®¥Ñ¥é¥á¡¼¥¿¤òÊÖ¤¹
-(¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤Î°ÕÌ£¤Ï
+フィールドはソケット生成パラメータを返す
+(これらのフィールドの意味は
 .BR socket (2)
-¤ÎƱ¤¸Ì¾Á°¤Î°ú¤­¿ô¤ÈƱ¤¸¤Ç¤¢¤ë)¡£
-Î㤨¤Ð¡¢
+の同じ名前の引き数と同じである)。
+例えば、
 .I ai_family
-¤Ï
+は
 .B AF_INET
-¤ä
+や
 .B AF_INET6
-¤òÊÖ¤·¡¢
+を返し、
 .I ai_socktype
-¤Ï
+は
 .B SOCK_DGRAM
-¤ä
+や
 .BR SOCK_STREAM
-¤òÊÖ¤·¡¢
+を返し、
 .I ai_protocol
-¤Ï¤½¤Î¥½¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤òÊÖ¤¹¡£
+はそのソケットのプロトコルを返す。
 .IP *
 .I ai_addr
-¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬½ñ¤­¹þ¤Þ¤ì¡¢
+フィールドにはソケットアドレスへのポインタが書き込まれ、
 .I ai_addrlen
-¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ÎŤµ¤¬¥Ð¥¤¥Èñ°Ì¤Ç½ñ¤­¹þ¤Þ¤ì¤ë¡£
+フィールドにはソケットアドレスの長さがバイト単位で書き込まれる。
 .PP
 .I hints.ai_flags
-¤¬
+が
 .B AI_ADDRCONFIG
-¤ò´Þ¤à¾ì¹ç¡¢
+を含む場合、
 .I res
-¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï¡¢
-¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤ËºÇÄã°ì¤Ä¤Î IPv4 ¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï
-IPv4 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¡¢
-¥í¡¼¥«¥ë¥·¥¹¥Æ¥à¤ËºÇÄã°ì¤Ä¤Î IPv6 ¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï
-IPv6 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£
+が指すリストには、
+ローカルシステムに最低一つの IPv4 アドレスが設定されている場合は
+IPv4 アドレスが返され、
+ローカルシステムに最低一つの IPv6 アドレスが設定されている場合は
+IPv6 アドレスが返される。
 .PP
 .I hint.ai_flags
-¤Ë
+に
 .B AI_V4MAPPED
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢
+が指定されていて、
 .I hints.ai_family
-¤Ë
+に
 .B AF_INET6
-¤¬»ØÄꤵ¤ì¡¢
-¥Þ¥Ã¥Á¤¹¤ë IPv6 ¥¢¥É¥ì¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢
+が指定され、
+マッチする IPv6 アドレスが見つからなかった場合、
 .I res
-¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï IPv4-mapped IPv6 ¥¢¥É¥ì¥¹¤¬ÊÖ¤µ¤ì¤ë¡£
+が指すリストには IPv4-mapped IPv6 アドレスが返される。
 .I hints.ai_flags
-¤Ë
+に
 .B AI_V4MAPPED
-¤È
+と
 .B AI_ALL
-¤ÎξÊý¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
+の両方が指定されている場合、
 .I res
-¤¬»Ø¤¹¥ê¥¹¥È¤Ë¤Ï IPv6 ¥¢¥É¥ì¥¹¤È IPv4-mapped IPv6 ¥¢¥É¥ì¥¹¤Î
-ξÊý¤¬ÊÖ¤µ¤ì¤ë¡£
+が指すリストには IPv6 アドレスと IPv4-mapped IPv6 アドレスの
+両方が返される。
 .B AI_V4MAPPED
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
+が指定されていない場合、
 .B AI_ALL
-¤Ï̵»ë¤µ¤ì¤ë¡£
+は無視される。
 .PP
 .BR freeaddrinfo ()
-´Ø¿ô¤Ï¡¢
-¥ê¥ó¥¯¥ê¥¹¥È
+関数は、
+リンクリスト
 .I res
-¤ËÂФ·¤ÆưŪ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥á¥â¥ê¤ò²òÊü¤¹¤ë¡£
-.SS "¹ñºÝ²½¥É¥á¥¤¥ó̾¤Î¤¿¤á¤Î getaddrinfo() ¤Î³ÈÄ¥"
+に対して動的に割り当てられたメモリを解放する。
+.SS "国際化ドメイン名のための getaddrinfo() の拡張"
 .PP
-glibc 2.3.4 ¤«¤é¡¢
+glibc 2.3.4 から、
 .BR getaddrinfo ()
-¤ÏÆþ½ÐÎϤ¹¤ë¥Û¥¹¥È̾¤òÆ©²áŪ¤Ë¹ñºÝ²½¥É¥á¥¤¥ó̾ (IDN) ·Á¼° (RFC 3490 ¤Î
+は入出力するホスト名を透過的に国際化ドメイン名 (IDN) 形式 (RFC 3490 の
 .I "Internationalizing Domain Names in Applications (IDNA)"
-¤ò»²¾È¤Î¤³¤È) ¤ÈÊÑ´¹¤¹¤ë¤³¤È¤òÁªÂòŪ¤Ëǧ¤á¤ë¤è¤¦¤Ë³ÈÄ¥¤µ¤ì¤Æ¤¤¤ë¡£
-4 ¤Ä¤Î¿·¤·¤¤¥Õ¥é¥°¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
+を参照のこと) と変換することを選択的に認めるように拡張されている。
+4 つの新しいフラグが定義されている:
 .TP
 .B AI_IDN
-¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¤È¡¢
+このフラグが指定されると、
 .I node
-¤ÇÍ¿¤¨¤é¤ì¤¿¥Î¡¼¥É̾¤ÏɬÍפ¬¤¢¤ì¤Ð IDN ·Á¼°¤ËÊÑ´¹¤µ¤ì¤ë¡£
-¥½¡¼¥¹Éä¹æ²½·Á¼°¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î¤â¤Î¤Ç¤¢¤ë¡£
-
-ÆþÎÏ̾¤ËÈó ASCII Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
-IDN Éä¹æ²½·Á¼°¤¬»È¤ï¤ì¤ë¡£
-Èó ASCII Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë(¥Ô¥ê¥ª¥É¤Ç¶èÀÚ¤é¤ì¤ë)Éôʬ¥Î¡¼¥É̾¤Ï¡¢
-̾Á°²ò·èµ¡Ç½¤ËÅϤµ¤ì¤ëÁ°¤Ë ASCII ¸ß´¹Éä¹æ²½·Á¼° (ACE) ¤ò»È¤Ã¤Æ
-Éä¹æ²½¤µ¤ì¤ë¡£
+で与えられたノード名は必要があれば IDN 形式に変換される。
+ソース符号化形式は現在のロケールのものである。
+
+入力名に非 ASCII 文字が含まれている場合、
+IDN 符号化形式が使われる。
+非 ASCII 文字が含まれている(ピリオドで区切られる)部分ノード名は、
+名前解決機能に渡される前に ASCII 互換符号化形式 (ACE) を使って
+符号化される。
 .\" Implementation Detail:
 .\" To minimize effects on system performance the implementation might
 .\" want to check whether the input string contains any non-ASCII
@@ -457,37 +457,37 @@ IDN 
 .TP
 .B AI_CANONIDN
 .B AI_CANONNAME
-¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢
+が指定されている場合、
 .BR getaddrinfo ()
-¤Ï̾Á°¤Î¸¡º÷¤ËÀ®¸ù¤·¤¿¸å¡¢
-ÊÖ¤µ¤ì¤¿
+は名前の検索に成功した後、
+返された
 .I addrinfo
-¹½Â¤ÂΤËÂбþ¤¹¤ë¥Î¡¼¥É¤ÎÀµµ¬Ì¾¤òÊÖ¤¹¡£
-ÊÖ¤êÃͤÏ̾Á°²ò·èµ¡Ç½¤«¤éÊÖ¤µ¤ì¤¿ÃͤÎÀµ³Î¤Ê¥³¥Ô¡¼¤Ç¤¢¤ë¡£
+構造体に対応するノードの正規名を返す。
+返り値は名前解決機能から返された値の正確なコピーである。
 
 .B AI_CANONIDN
-̾Á°¤¬ ACE ¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢°ì¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î̾Á°¤Î¹½À®Í×ÁǤÎÀèƬ¤Ë
+名前が ACE で符号化されている場合、一つまたは複数の名前の構成要素の先頭に
 .I xn\-\-
-¤ò´Þ¤ó¤Ç¤¤¤ë¡£
-¤³¤ì¤é¤Î¹½À®Í×ÁǤòÆɤ߹þ¤ß²Äǽ¤Ê·Á¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Ë¡¢
+を含んでいる。
+これらの構成要素を読み込み可能な形に変換するために、
 .B AI_CANONNAME
-¤È¶¦¤Ë
+と共に
 .B AI_CANONIDN
-¥Õ¥é¥°¤òÅϤ¹¤³¤È¤â½ÐÍè¤ë¡£
-ÊÖ¤µ¤ì¤ëʸ»úÎó¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤ÎÉä¹æ²½·Á¼°¤ÇÉä¹æ²½¤µ¤ì¤Æ¤¤¤ë¡£
+フラグを渡すことも出来る。
+返される文字列は現在のロケールの符号化形式で符号化されている。
 .\"
 .\"Implementation Detail:
 .\"If no component of the returned name starts with xn\-\- the IDN
 .\"step can be skipped, therefore avoiding unnecessary slowdowns.
 .TP
 .BR AI_IDN_ALLOW_UNASSIGNED ", " AI_IDN_USE_STD3_ASCII_RULES
-¤³¤ì¤é¤Î¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¤È¡¢
-IDNA ¥Ï¥ó¥É¥ê¥ó¥°¤ò»È¤¦¤È¤­¤Ë¤½¤ì¤¾¤ì
-IDNA_ALLOW_UNASSIGNED (Èó³ä¤êÅö¤Æ Unicode ¥³¡¼¥É¥Ý¥¤¥ó¥È¤òµö²Ä¤¹¤ë) ¤È
-IDNA_USE_STD3_ASCII_RULES (½ÐÎϤ¬ STD3 ½àµò¥Û¥¹¥È̾¤Ç¤¢¤ë¤³¤È¤ò³Îǧ¤¹¤ë)
-¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤ë¡£
+これらのフラグが設定されると、
+IDNA ハンドリングを使うときにそれぞれ
+IDNA_ALLOW_UNASSIGNED (非割り当て Unicode コードポイントを許可する) と
+IDNA_USE_STD3_ASCII_RULES (出力が STD3 準拠ホスト名であることを確認する)
+フラグが有効になる。
 
-.SH ÊÖ¤êÃÍ
+.SH 返り値
 .\" FIXME glibc defines the following additional errors, some which
 .\" can probably be returned by getaddrinfo(); they need to
 .\" be documented.
@@ -500,152 +500,152 @@ IDNA_USE_STD3_ASCII_RULES (
 .\" #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
 .\" #endif
 .BR getaddrinfo ()
-¤ÏÀ®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤·¡¢¼ºÇÔ¤¹¤ë¤È°Ê²¼¤ÎÈó 0 ¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤¤¤º¤ì¤«¤òÊÖ¤¹¡£
+は成功すると 0 を返し、失敗すると以下の非 0 のエラーコードのいずれかを返す。
 .TP
 .B EAI_ADDRFAMILY
 .\" Not in SUSv3
-»ØÄꤵ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Ë¤Ï¡¢
-Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¤Ê¤¤¡£
+指定されたネットワークホストには、
+要求されたアドレスファミリーのネットワークアドレスがない。
 .TP
 .B EAI_AGAIN
-¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é°ì»þŪ¤Ê¼ºÇÔ (temporary failure)
-¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£¸å¤Ç¤â¤¦°ìÅٻ¤Æ¤ß¤è¡£
+ネームサーバーから一時的な失敗 (temporary failure)
+を意味する返事が返された。後でもう一度試してみよ。
 .TP
 .B EAI_BADFLAGS
 .I hints.ai_flags
-¤Î¥Õ¥é¥°¤ËÉÔÀµ¤Ê¥Õ¥é¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤Ï¡¢
+のフラグに不正なフラグが含まれている。または、
 .I hints.ai_flags
-¤Ë
+に
 .B AI_CANONNAME
-¤¬´Þ¤Þ¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä
+が含まれていて、かつ
 .I name
-¤¬ NULL ¤Ç¤¢¤Ã¤¿¡£
+が NULL であった。
 .TP
 .B EAI_FAIL
-¥Í¡¼¥à¥µ¡¼¥Ð¡¼¤«¤é¹±µ×Ū¤Ê¼ºÇÔ (permanent failure)
-¤ò°ÕÌ£¤¹¤ëÊÖ»ö¤¬ÊÖ¤µ¤ì¤¿¡£
+ネームサーバーから恒久的な失敗 (permanent failure)
+を意味する返事が返された。
 .TP
 .B EAI_FAMILY
-Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+要求されたアドレスファミリーがサポートされていない。
 .TP
 .B EAI_MEMORY
-¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£
+メモリが足りない。
 .TP
 .B EAI_NODATA
 .\" Not in SUSv3
-»ØÄꤵ¤ì¤¿¥Í¥Ã¥È¥ï¡¼¥¯¥Û¥¹¥È¤Ï¸ºß¤¹¤ë¤¬¡¢
-¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬¤Ò¤È¤Ä¤âÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+指定されたネットワークホストは存在するが、
+ネットワークアドレスがひとつも定義されていない。
 .TP
 .B EAI_NONAME
 .I node
-¤È
+と
 .I service
-¤Î¤É¤Á¤é¤«¤¬ÉÔÌÀ¡¢¤Þ¤¿¤Ï
+のどちらかが不明、または
 .I node
-¤È
+と
 .I service
-¤ÎξÊý¤¬ NULL ¤À¤Ã¤¿¾ì¹ç¡¢¤Þ¤¿¤Ï
+の両方が NULL だった場合、または
 .B AI_NUMERICSERV
-¤¬
+が
 .I hints.ai_flags
-¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢
+に指定されていて、
 .I hints.ai_flags
-¤È
+と
 .I service
-¤¬¿ôÃͤΥݡ¼¥ÈÈÖ¹æ¤Îʸ»úÎó¤Ç¤Ê¤¤¡£
+が数値のポート番号の文字列でない。
 .TP
 .B EAI_SERVICE
-Í׵ᤵ¤ì¤¿¥µ¡¼¥Ó¥¹¤Ï¡¢Í׵ᤵ¤ì¤¿¥½¥±¥Ã¥È¥¿¥¤¥×¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£
-¾¤Î¥½¥±¥Ã¥È¥¿¥¤¥×¤Ç¤Ê¤éÍøÍѲÄǽ¤«¤â¤·¤ì¤Ê¤¤¡£
-¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ëÎã¤È¤·¤Æ¤Ï¡¢
+要求されたサービスは、要求されたソケットタイプでは利用できない。
+他のソケットタイプでなら利用可能かもしれない。
+このエラーが発生する例としては、
 .I service
-¤¬ "shell" (¥¹¥È¥ê¡¼¥à¡¦¥½¥±¥Ã¥È¤Ç¤Î¤ßÍøÍѤǤ­¤ë¥µ¡¼¥Ó¥¹) ¤Ç¡¢
+が "shell" (ストリーム・ソケットでのみ利用できるサービス) で、
 .I hints.ai_protocol
-¤Ë
+に
 .B IPPROTO_UDP
-¤¬»ØÄꤵ¤ì¤¿¤ê¡¢
+が指定されたり、
 .I hints.ai_socktype
-¤Ë
+に
 .B SOCK_DGRAM
-¤¬»ØÄꤵ¤ì¤¿¤ê¤·¤¿¾ì¹ç¤¬¤¢¤ë¡£
-¤Þ¤¿¡¢
+が指定されたりした場合がある。
+また、
 .I service
-¤¬ NULL °Ê³°¤Ç¡¢
+が NULL 以外で、
 .I hints.ai_socktype
-¤Ë
+に
 .B SOCK_RAW
-(¥µ¡¼¥Ó¥¹¤Î¹Í¤¨Êý¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¼ïÊÌ)
-¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£
+(サービスの考え方をサポートしていないソケット種別)
+が指定された場合にも、このエラーが発生する。
 .TP
 .B EAI_SOCKTYPE
-Í׵ᤵ¤ì¤¿¥½¥±¥Ã¥È¥¿¥¤¥×¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ëÎã¤È¤·¤Æ¤Ï¡¢
+要求されたソケットタイプがサポートされていない。
+このエラーが発生する例としては、
 .I hints.ai_socktype
-¤È
+と
 .I hints.ai_protocol
-¤¬Ì·½â¤·¤Æ¤¤¤ë¾ì¹ç (Î㤨¤Ð
+が矛盾している場合 (例えば
 .I hints.ai_socktype
-¤¬
+が
 .B SOCK_DGRAM
-¤Ç
+で
 .I hints.ai_protocol
-¤¬
+が
 .BR IPPROTO_TCP )
-¤¬¤¢¤ë¡£
+がある。
 .TP
 .B EAI_SYSTEM
-¤½¤Î¾¤Î¥·¥¹¥Æ¥à¥¨¥é¡¼¡£¾Ü¤·¤¯¤Ï
+その他のシステムエラー。詳しくは
 .I errno
-¤òÄ´¤Ù¤ë¤³¤È¡£
+を調べること。
 .PP
 .BR gai_strerror ()
-´Ø¿ô¤òÍѤ¤¤ë¤È¡¢¤³¤ì¤é¤Î¥¨¥é¡¼¥³¡¼¥É¤ò¿Í´Ö¤Ë²ÄÆɤÊʸ»úÎó¤ËÊÑ´¹¤Ç¤­¤ë¤Î¤Ç¡¢
-¥¨¥é¡¼Êó¹ð¤ËŬ¤¹¤ë¤À¤í¤¦¡£
-.SH ¥Õ¥¡¥¤¥ë
+関数を用いると、これらのエラーコードを人間に可読な文字列に変換できるので、
+エラー報告に適するだろう。
+.SH ファイル
 .I /etc/gai.conf
-.SH ½àµò
+.SH 準拠
 POSIX.1-2001.
 .BR getaddrinfo ()
-´Ø¿ô¤Ï RFC 2553 ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£
-.SH Ãí°Õ
+関数は RFC 2553 に記載されている。
+.SH 注意
 .BR getaddrinfo ()
-¤Ï¡¢IPv6 scope-ID ¤ò»ØÄꤹ¤ë¤¿¤á¤Ë
+は、IPv6 scope-ID を指定するために
 .IB address % scope-id
-µ­Ë¡¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£
+記法をサポートしている。
 
 .BR AI_ADDRCONFIG ,
 .BR AI_ALL ,
 .B AI_V4MAPPED
-¤Ï glibc 2.3.3 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£
+は glibc 2.3.3 以降で利用可能である。
 .B AI_NUMERICSERV
-¤Ï glibc 2.3.4 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£
+は glibc 2.3.4 以降で利用可能である。
 
-POSIX.1-2001 ¤Ë¤è¤ë¤È¡¢
+POSIX.1-2001 によると、
 .I hints
-¤Ë NULL ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
+に NULL が指定された場合、
 .I ai_flags
-¤ò 0 ¤È¤ß¤Ê¤¹¤Ù¤­¤È¤µ¤ì¤Æ¤¤¤ë¡£
-GNU C ¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¡¢Âå¤ï¤ê¤Ë
+を 0 とみなすべきとされている。
+GNU C ライブラリでは、この場合に、代わりに
 .I ai_flags
-¤ò
+を
 .BR "(AI_V4MAPPED\ |\ AI_ADDRCONFIG)"
-¤È¤ß¤Ê¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-¤³¤ÎÃͤÎÊý¤¬É¸½àµ¬³Ê¤Î²þÁ±¤Ë¤Ê¤ë¤È¹Í¤¨¤é¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£
-.SH Îã
+とみなすようになっている。
+この値の方が標準規格の改善になると考えられているからである。
+.SH 
 .\" getnameinfo.3 refers to this example
 .\" socket.2 refers to this example
 .\" bind.2 refers to this example
 .\" connect.2 refers to this example
 .\" recvfrom.2 refers to this example
 .\" sendto.2 refers to this example
-°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢
+以下のプログラムは、
 .BR getaddrinfo (),
 .BR gai_strerror (),
 .BR freeaddrinfo (),
 .BR getnameinfo (3)
-¤Î»È¤¤Êý¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£
-¥×¥í¥°¥é¥à¤Ï UDP ¥Ç¡¼¥¿¥°¥é¥à¤Î echo ¥µ¡¼¥Ð¤È¥¯¥é¥¤¥¢¥ó¥È¤Ç¤¢¤ë¡£
-.SS ¥µ¡¼¥Ð¤Î¥×¥í¥°¥é¥à
+の使い方を示したものである。
+プログラムは UDP データグラムの echo サーバとクライアントである。
+.SS サーバのプログラム
 \&
 .nf
 #include <sys/types.h>
@@ -740,7 +740,7 @@ main(int argc, char *argv[])
     }
 }
 .fi
-.SS ¥¯¥é¥¤¥¢¥ó¥È¤Î¥×¥í¥°¥é¥à
+.SS クライアントのプログラム
 \&
 .nf
 #include <sys/types.h>
@@ -836,7 +836,7 @@ main(int argc, char *argv[])
     exit(EXIT_SUCCESS);
 }
 .fi
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .\" .BR getipnodebyaddr (3),
 .\" .BR getipnodebyname (3)
 .BR getaddrinfo_a (3),