.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
.\"
+.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
.\"
.\" References consulted:
.\" Linux libc source code
.\" Modified 2002-08-05, Michael Kerrisk
.\" Modified 2004-10-31, Andries Brouwer
.\"
-.\" Japanese Version Copyright (c) 1998-2000 NAKANO Takeo all rights reserved.
-.\" Translated 1998-04-30, NAKANO Takeo <nakano@apm.seikei.ac.jp>
-.\" Modified 1998-12-06, NAKANO Takeo
-.\" Updated & Modified 1999-10-12, NAKANO Takeo
-.\" Updated & Modified 2001-07-01, Yuichi SATO <ysato@h4.dion.ne.jp>
-.\" Updated & Modified 2002-01-03, Yuichi SATO
-.\" Updated & Modified 2003-11-27, Yuichi SATO <ysato444@yahoo.co.jp>
-.\" Updated & Modified 2005-01-10, Yuichi SATO
-.\" Updated 2006-01-18, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2007-06-11, Akihiro MOTOKI, LDP v2.54
-.\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05
+.\"*******************************************************************
.\"
-.TH GETHOSTBYNAME 3 2009-12-03 "" "Linux Programmer's Manual"
-.SH ̾Á°
-gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent,
-h_errno,
-herror, hstrerror,
-gethostbyaddr_r,
-gethostbyname2, gethostbyname2_r, gethostbyname_r,
-gethostent_r \- ¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥Û¥¹¥È¤Î¥¨¥ó¥È¥ê¤ò¼èÆÀ¤¹¤ë
-.SH ½ñ¼°
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH GETHOSTBYNAME 3 2010\-10\-04 "" "Linux Programmer's Manual"
+.SH 名前
+gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno,
+herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r,
+gethostbyname_r, gethostent_r \- ネットワーク上のホストのエントリを取得する
+.SH 書式
.nf
-.B #include <netdb.h>
-.B extern int h_errno;
+\fB#include <netdb.h>\fP
+\fBextern int h_errno;\fP
.sp
-.BI "struct hostent *gethostbyname(const char *" name );
+\fBstruct hostent *gethostbyname(const char *\fP\fIname\fP\fB);\fP
.sp
-.BR "#include <sys/socket.h>" " /* AF_INET ¤ò»È¤¦¾ì¹ç */"
-.BI "struct hostent *gethostbyaddr(const void *" addr ,
-.BI " socklen_t " len ", int " type );
+\fB#include <sys/socket.h>\fP /* AF_INET を使う場合 */
+\fBstruct hostent *gethostbyaddr(const void *\fP\fIaddr\fP\fB,\fP
+\fB socklen_t \fP\fIlen\fP\fB, int \fP\fItype\fP\fB);\fP
.sp
-.BI "void sethostent(int " stayopen );
+\fBvoid sethostent(int \fP\fIstayopen\fP\fB);\fP
.sp
-.B void endhostent(void);
+\fBvoid endhostent(void);\fP
.sp
-.BI "void herror(const char *" s );
+\fBvoid herror(const char *\fP\fIs\fP\fB);\fP
.sp
-.BI "const char *hstrerror(int " err );
+\fBconst char *hstrerror(int \fP\fIerr\fP\fB);\fP
.sp
-/* System V/POSIX ³ÈÄ¥ */
+/* System V/POSIX 拡張 */
.br
-.B struct hostent *gethostent(void);
+\fBstruct hostent *gethostent(void);\fP
.sp
-/* GNU ³ÈÄ¥ */
+/* GNU 拡張 */
.br
-.BI "struct hostent *gethostbyname2(const char *" name ", int " af );
+\fBstruct hostent *gethostbyname2(const char *\fP\fIname\fP\fB, int \fP\fIaf\fP\fB);\fP
.sp
-.B "int gethostent_r("
-.BI " struct hostent *" ret ", char *" buf ", size_t " buflen ,
-.BI " struct hostent **" result ", int *" h_errnop );
+\fBint gethostent_r(\fP
+\fB struct hostent *\fP\fIret\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB,\fP
+\fB struct hostent **\fP\fIresult\fP\fB, int *\fP\fIh_errnop\fP\fB);\fP
.sp
-.BI "int gethostbyaddr_r(const void *" addr ", socklen_t " len ", int " type ,
-.BI " struct hostent *" ret ", char *" buf ", size_t " buflen ,
-.BI " struct hostent **" result ", int *" h_errnop );
+\fBint gethostbyaddr_r(const void *\fP\fIaddr\fP\fB, socklen_t \fP\fIlen\fP\fB, int \fP\fItype\fP\fB,\fP
+\fB struct hostent *\fP\fIret\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB,\fP
+\fB struct hostent **\fP\fIresult\fP\fB, int *\fP\fIh_errnop\fP\fB);\fP
.sp
-.BI "int gethostbyname_r(const char *" name ,
-.BI " struct hostent *" ret ", char *" buf ", size_t " buflen ,
-.BI " struct hostent **" result ", int *" h_errnop );
+\fBint gethostbyname_r(const char *\fP\fIname\fP\fB,\fP
+\fB struct hostent *\fP\fIret\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB,\fP
+\fB struct hostent **\fP\fIresult\fP\fB, int *\fP\fIh_errnop\fP\fB);\fP
.sp
-.BI "int gethostbyname2_r(const char *" name ", int " af,
-.BI " struct hostent *" ret ", char *" buf ", size_t " buflen ,
-.BI " struct hostent **" result ", int *" h_errnop );
+\fBint gethostbyname2_r(const char *\fP\fIname\fP\fB, int \fP\fIaf,\fP
+\fB struct hostent *\fP\fIret\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB,\fP
+\fB struct hostent **\fP\fIresult\fP\fB, int *\fP\fIh_errnop\fP\fB);\fP
.fi
.sp
.in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
-.RB ( feature_test_macros (7)
-»²¾È):
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
.in
.sp
+.PD 0
.ad l
-.BR gethostbyname2 (),
-.BR gethostent_r (),
-.BR gethostbyaddr_r (),
-.BR gethostbyname_r (),
-.BR gethostbyname2_r ():
+\fBgethostbyname2\fP(), \fBgethostent_r\fP(), \fBgethostbyaddr_r\fP(),
+\fBgethostbyname_r\fP(), \fBgethostbyname2_r\fP():
+.RS 4
_BSD_SOURCE || _SVID_SOURCE
+.RE
-.BR herror (),
-.BR hstrerror ()
-(glibc 2.8 °Ê¹ß): _BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE
+\fBherror\fP(), \fBhstrerror\fP():
+.RS 4
+.TP 4
+glibc 2.8 以降:
+_BSD_SOURCE || _SVID_SOURCE || _GNU_SOURCE
+.TP
+glibc 2.8 より前:
+なし
+.RE
.ad b
-.SH ÀâÌÀ
-.BR gethostbyname* ()
-¤È
-.BR gethostbyaddr* ()
-¤Ï²áµî¤Î¤â¤Î¤Ç¤¢¤ë¡£
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢Âå¤ï¤ê¤Ë
-.BR getaddrinfo (3)
-¤È
-.BR getnameinfo (3)
-¤ò»ÈÍѤ¹¤ë¤³¤È¡£
+.PD
+.SH 説明
+\fBgethostbyname*\fP() と \fBgethostbyaddr*\fP() は過去のものである。 アプリケーションでは、代わりに
+\fBgetaddrinfo\fP(3) と \fBgetnameinfo\fP(3) を使用すること。
-.BR gethostbyname ()
-´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿¥Û¥¹¥È̾
-.I name
-¤ËÂбþ¤¹¤ë¹½Â¤ÂÎ
-.I hostent
-¤òÊÖ¤¹¡£
-.I name
-¤Ë¤Ï¥Û¥¹¥È̾¡¢¥É¥Ã¥È¶èÀÚ¤ê¤Î IPv4 ¥¢¥É¥ì¥¹
-.RB ( inet_addr (3)
-»²¾È)¡¢¥³¥í¥ó¶èÀÚ¤ê¤Î IPv6 ¥¢¥É¥ì¥¹ (¤ª¤½¤é¤¯¥É¥Ã¥È¶èÀÚ¤ê¤Ç¤âÂç¾æÉ×)
-¤Î¤¤¤º¤ì¤«¤ò»ØÄꤹ¤ë
-(IPv6 ¥¢¥É¥ì¥¹¤Îµ½ÒÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï RFC\ 1884 ¤ò»²¹Í¤Ë¤·¤Æ¤Û¤·¤¤)¡£
-.I name
-¤¬ IPv4 ¤« IPv6 ¤Î¥¢¥É¥ì¥¹¤À¤Ã¤¿¾ì¹ç¡¢
-̾Á°²ò·è (lookup) ¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£¤½¤Î¾ì¹ç¤Ë¤Ï¡¢
-.BR gethostbyname ()
-¤Ï
-.I name
-¤ò¤½¤Î¤Þ¤Þ
-.I hostent
-¹½Â¤ÂΤÎ
-.I h_name
-¥Õ¥£¡¼¥ë¥É¤Ë¥³¥Ô¡¼¤·¡¢
-¤µ¤é¤Ë
-.I name
-¤ò
-.I struct in_addr
-·Á¼°¤Çɽ¤·¤¿¥Ç¡¼¥¿¤ò
-.I hostent
-¹½Â¤ÂΤÎ
-.I h_addr_list[0]
-¥Õ¥£¡¼¥ë¥É¤ËÆþ¤ì¤Æ¡¢¤½¤Î
-.I hostent
-¹½Â¤ÂΤòÊÖ¤¹¡£
-.I name
-¤¬¥É¥Ã¥È¤Ç½ªÎ»¤·¤Æ¤¤¤Æ¡¢¤«¤Ä´Ä¶ÊÑ¿ô
-.B HOSTALIASES
-¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤Þ¤º
-.B HOSTALIASES
-¤Ç»ØÄꤵ¤ì¤Æ¤¤¤ë¥¨¥¤¥ê¥¢¥¹¥Õ¥¡¥¤¥ë¤«¤é
-.I name
-¤Î¥¨¥ó¥È¥ê¤¬¸¡º÷¤µ¤ì¤ë (¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Ï
-.BR hostname (7)
-¤ò»²¾È¤Î¤³¤È)¡£
-.I name
-¤¬¥É¥Ã¥È¤Ç½ªÎ»¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¸½ºß¤Î¥É¥á¥¤¥ó¤È¤½¤Î¿Æ¥É¥á¥¤¥ó¤¬¸¡º÷¤µ¤ì¤ë¡£
+\fBgethostbyname\fP() 関数は与えられたホスト名 \fIname\fP に対応する構造体 \fIhostent\fP を返す。 \fIname\fP
+にはホスト名、ドット区切りの IPv4 アドレス (\fBinet_addr\fP(3) 参照)、コロン区切りの IPv6 アドレス
+(おそらくドット区切りでも大丈夫) のいずれかを指定する (IPv6 アドレスの記述方法については RFC\ 1884 を参考にしてほしい)。
+\fIname\fP が IPv4 か IPv6 のアドレスだった場合、 名前解決 (lookup) は行われない。その場合には、
+\fBgethostbyname\fP() は \fIname\fP をそのまま \fIhostent\fP 構造体の \fIh_name\fP フィールドにコピーし、
+さらに \fIname\fP を \fIstruct in_addr\fP 形式で表したデータを \fIhostent\fP 構造体の \fIh_addr_list[0]\fP
+フィールドに入れて、その \fIhostent\fP 構造体を返す。 \fIname\fP がドットで終了していて、かつ環境変数 \fBHOSTALIASES\fP
+が設定されている場合、まず \fBHOSTALIASES\fP で指定されているエイリアスファイルから \fIname\fP のエントリが検索される
+(ファイルのフォーマットについては \fBhostname\fP(7) を参照のこと)。 \fIname\fP
+がドットで終了していなければ、現在のドメインとその親ドメインが検索される。
.PP
-.BR gethostbyaddr ()
-´Ø¿ô¤ÏÍ¿¤¨¤é¤ì¤¿¥Û¥¹¥È¥¢¥É¥ì¥¹
-.I addr
-(Ťµ \fIlen\fP¡¢ ¥¿¥¤¥× \fItype\fP) ¤ËÂбþ¤¹¤ë¹½Â¤ÂÎ
-.I hostent
-¤òÊÖ¤¹¡£
-ÍѤ¤¤ë¤³¤È¤Î¤Ç¤¤ë¥¿¥¤¥×¤Ï
-.B AF_INET
-¤È
-.B AF_INET6
-¤Ç¤¢¤ë¡£
-¥Û¥¹¥È¥¢¥É¥ì¥¹°ú¤¿ô¤Ï¥¢¥É¥ì¥¹¥¿¥¤¥×¤Ë°Í¸¤·¤¿
-¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
-Î㤨¤Ð¡¢¥¢¥É¥ì¥¹¥¿¥¤¥×
-.B AF_INET
-¤ËÂФ·¤Æ¤Ï
-.RB ( inet_addr (3)
-¤Î¸Æ¤Ó½Ð¤·¤ÇÆÀ¤é¤ì¤ë)
-\fIstruct in_addr *\fP ¤Ç¤¢¤ë¡£
+\fBgethostbyaddr\fP() 関数は与えられたホストアドレス \fIaddr\fP (長さ \fIlen\fP、 タイプ \fItype\fP)
+に対応する構造体 \fIhostent\fP を返す。 用いることのできるタイプは \fBAF_INET\fP と \fBAF_INET6\fP である。
+ホストアドレス引き数はアドレスタイプに依存した 構造体へのポインタである。 例えば、アドレスタイプ \fBAF_INET\fP に対しては
+(\fBinet_addr\fP(3) の呼び出しで得られる) \fIstruct in_addr *\fP である。
.PP
-.BR sethostent ()
-´Ø¿ô¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÀܳ·ÁÂÖ¤ò»ØÄꤹ¤ë¡£
-.I stayopen
-¤¬¿¿ (1) ¤Ê¤é¤Ð¡¢¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤Ë¤Ï¡¢
-Àܳ¤µ¤ì¤¿ TCP ¥½¥±¥Ã¥È¤òÍѤ¤¡¢Ï¢Â³¤·¤¿Ì䤤¹ç¤ï¤»¤Î´Ö¤ËÀܳ¤ò°Ý»ý¤¹¤ë¡£
-µ¶¤Ê¤é¤Ð¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤Ë UDP ¥Ç¡¼¥¿¥°¥é¥à¤òÍѤ¤¤ë¡£
+\fBsethostent\fP() 関数は、ネームサーバへの接続形態を指定する。 \fIstayopen\fP が真 (1)
+ならば、ネームサーバへの問い合わせには、 接続された TCP ソケットを用い、連続した問い合わせの間に接続を維持する。
+偽ならばネームサーバへの問い合わせに UDP データグラムを用いる。
.PP
-.BR endhostent ()
-´Ø¿ô¤Ï¥Í¡¼¥à¥µ¡¼¥Ð¤Ø¤ÎÌ䤤¹ç¤ï¤»¤ËÍѤ¤¤¿ TCP Àܳ¤ÎÍøÍѤò½ªÎ»¤¹¤ë¡£
+\fBendhostent\fP() 関数はネームサーバへの問い合わせに用いた TCP 接続の利用を終了する。
.PP
-(ÇÑ»ßͽÄê¤Î)
-.BR herror ()
-´Ø¿ô¤Ï¸½ºß¤Î
-.I h_errno
-¤ËÂбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɸ½à¥¨¥é¡¼ \fIstderr\fP ¤Ë½ÐÎϤ¹¤ë¡£
+(廃止予定の) \fBherror\fP() 関数は現在の \fIh_errno\fP に対応するエラーメッセージを標準エラー \fIstderr\fP に出力する。
.PP
-(ÇÑ»ßͽÄê¤Î)
-.BR hstrerror ()
-´Ø¿ô¤Ï¥¨¥é¡¼ÈÖ¹æ (Ä̾ï¤Ï \fIh_errno\fP) ¤ò°ú¤¿ô¤Ë¼è¤ê¡¢
-Âбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤òÊÖ¤¹¡£
+(廃止予定の) \fBhstrerror\fP() 関数はエラー番号 (通常は \fIh_errno\fP) を引き数に取り、
+対応するエラーメッセージ文字列を返す。
.PP
-.BR gethostbyname ()
-¤È
-.BR gethostbyaddr ()
-¤Ë¤è¤Ã¤Æ¼Â¹Ô¤µ¤ì¤ë¥É¥á¥¤¥ó̾¤ÎÌ䤤¹ç¤ï¤»¤Ç¤Ï¡¢¥Í¡¼¥à¥µ¡¼¥Ð
-.BR named (8)¡¢
-.I /etc/hosts
-¤Î¥Ç¡¼¥¿¹Ô¡¢¤ª¤è¤Ó
-Network Information Service (NIS ¤Þ¤¿¤Ï YP)
-¤¬ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤµ¤ì¤ë¡£²¿¤¬»ÈÍѤµ¤ì¤ë¤«¤Ï¡¢
-.I /etc/host.conf
-¤Î
-.I order
-¹Ô¤ÎÆâÍƤˤè¤ê·è¤Þ¤ë¡£
-.\" (¾Ü¤·¤¯¤Ï
-.\" .BR resolv+ (8)
-.\" ¤ò»²¾È)¡£
-¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¤Þ¤º
-.BR named (8)
-¤ËÌ䤤¹ç¤ï¤»¤ò¹Ô¤¤¡¢¼¡¤¤¤Ç
-.I /etc/hosts
-¤ò»²¾È¤¹¤ë¡£
+.\" (See
+.\" .BR resolv+ (8)).
+\fBgethostbyname\fP() と \fBgethostbyaddr\fP() によって実行されるドメイン名の問い合わせでは、ネームサーバ
+\fBnamed\fP(8)、 \fI/etc/hosts\fP のデータ行、および Network Information Service (NIS または
+YP) が組み合わせて使用される。何が使用されるかは、 \fI/etc/host.conf\fP の \fIorder\fP 行の内容により決まる。
+デフォルトでは、まず \fBnamed\fP(8) に問い合わせを行い、次いで \fI/etc/hosts\fP を参照する。
.PP
-.I hostent
-¹½Â¤ÂΤÏ
-.I <netdb.h>
-¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
+\fIhostent\fP 構造体は \fI<netdb.h>\fP で以下のように定義されている:
.sp
.in +4n
.nf
int h_length; /* length of address */
char **h_addr_list; /* list of addresses */
}
-#define h_addr h_addr_list[0] /* ²áµî¤È¤Î¸ß´¹À¤Î¤¿¤á */
+#define h_addr h_addr_list[0] /* 過去との互換性のため */
.fi
.in
.PP
-.I hostent
-¹½Â¤ÂΤΥá¥ó¥Ð¤Ï°Ê²¼¤ÎÄ̤ꡣ
-.TP
-.I h_name
-¥Û¥¹¥È¤ÎÀµ¼°Ì¾ (official name)¡£
-.TP
-.I h_aliases
-¥Û¥¹¥È¤ÎÊÌ̾¤ÎÇÛÎó¡£ÇÛÎó¤Ï NULL ¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤ë¡£
-.TP
-.I h_addrtype
-¥¢¥É¥ì¥¹¤Î¥¿¥¤¥×¡£¸½ºß¤Ï¤¹¤Ù¤Æ
-.B AF_INET
-¤Þ¤¿¤Ï
-.B AF_INET6
-¤Ç¤¢¤ë¡£
-.TP
-.I h_length
-¥Ð¥¤¥Èñ°Ì¤Çɽ¤·¤¿¥¢¥É¥ì¥¹¤ÎŤµ¡£
-.TP
-.I h_addr_list
-¥Û¥¹¥È¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¡£
-ÇÛÎó¤Ï NULL ¥Ý¥¤¥ó¥¿¤Ç½ªÃ¼¤µ¤ì¤ë¡£
-¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ð¥¤¥È¥ª¡¼¥À·Á¼°¤Ç¤¢¤ë¡£
-.TP
-.I h_addr
-.I h_addr_list
-¤ÎºÇ½é¤Î¥¢¥É¥ì¥¹¡£²áµî¤È¤Î¸ß´¹À¤òÊݤĤ¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£
-.SH ÊÖ¤êÃÍ
-.BR gethostbyname ()
-¤ª¤è¤Ó
-.BR gethostbyaddr ()
-´Ø¿ô¤Ï
-.I hostent
-¹½Â¤ÂΤòÊÖ¤¹¡£¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤é NULL ¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£¥¨¥é¡¼¤ÎºÝ¤Ë¤Ï
-.I h_errno
-ÊÑ¿ô¤¬¥¨¥é¡¼¤ÎÈÖ¹æ¤òÊÝ»ý¤¹¤ë¡£
-ÊÖ¤êÃͤ¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢ÀÅŪ¥Ç¡¼¥¿¤ò¥Ý¥¤¥ó¥¿¤Ç»Ø¤·¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¡£
-°Ê²¼¤Î¡ÖÃí°Õ¡×¤ò»²¾È¤¹¤ë¤³¤È¡£
-.SH ¥¨¥é¡¼
-.I h_errno
-ÊÑ¿ô¤Ï°Ê²¼¤ÎÃͤò¼è¤ê¤¦¤ë¡£
-.TP
-.B HOST_NOT_FOUND
-»ØÄꤷ¤¿¥Û¥¹¥È¤¬¸«¤Ä¤«¤é¤Ê¤¤¡£
-.TP
-.B NO_ADDRESS " ¤Þ¤¿¤Ï " NO_DATA
-»ØÄꤷ¤¿Ì¾Á°¤Ï͸ú¤À¤¬ IP ¥¢¥É¥ì¥¹¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
-.TP
-.B NO_RECOVERY
-¥Í¡¼¥à¥µ¡¼¥Ð¤ÎÉüµìÉÔǽ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£
-.TP
-.B TRY_AGAIN
-authoritative ¤Ê¥Í¡¼¥à¥µ¡¼¥Ð¤Ç°ì»þŪ¤Ê¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¡£
-»þ´Ö¤ò¤ª¤¤¤Æ¤â¤¦°ìÅٻ¤³¤È¡£
-.SH ¥Õ¥¡¥¤¥ë
-.TP
-.I /etc/host.conf
-̾Á°²ò·è¤ÎÀßÄê¥Õ¥¡¥¤¥ë
-.TP
-.I /etc/hosts
-¥Û¥¹¥È¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë
-.TP
-.I /etc/nsswitch.conf
-¥Í¡¼¥à¥µ¡¼¥Ó¥¹ÀÚÂØÀßÄê
-.SH ½àµò
-POSIX.1-2001 ¤Ç¤Ï¡¢
-.BR gethostbyname (),
-.BR gethostbyaddr (),
-.BR sethostent (),
-.BR endhostent (),
-.BR gethostent (),
-.I h_errno
-¤¬µ¬Äꤵ¤ì¤Æ¤ª¤ê¡¢
-.BR gethostbyaddr ()
-¤È
-.BR gethostbyname ()
-¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£
-POSIX.1-2008 ¤Ç¤Ï
-.BR gethostbyname (),
-.BR gethostbyaddr (),
-.I h_errno
-¤Î»ÅÍͤ¬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£
-Âå¤ï¤ê¤Ë¡¢
-.BR getaddrinfo (3)
-¤È
-.BR getnameinfo (3)
-¤Î»ÈÍѤ¬¿ä¾©¤µ¤ì¤Æ¤¤¤ë¡£
-.SH Ãí°Õ
-.BR gethostbyname ()
-¤ª¤è¤Ó
-.BR gethostbyaddr ()
-´Ø¿ô¤ÏÀÅŪ¥Ç¡¼¥¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
-¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Î¸Æ¤Ó½Ð¤·¤Ç¾å½ñ¤¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
-.I hostent
-¹½Â¤ÂΤϥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¤Î¤Ç¡¢¹½Â¤ÂΤΥ³¥Ô¡¼¤À¤±¤Ç¤ÏÉÔ½½Ê¬¤Ç¤¢¤ë;
-¤è¤ê¿¼¤¤¥³¥Ô¡¼¤¬É¬ÍפǤ¢¤ë¡£
+\fIhostent\fP 構造体のメンバは以下の通り。
+.TP
+\fIh_name\fP
+ホストの正式名 (official name)。
+.TP
+\fIh_aliases\fP
+ホストの別名の配列。配列は NULL ポインタで終端される。
+.TP
+\fIh_addrtype\fP
+アドレスのタイプ。現在はすべて \fBAF_INET\fP または \fBAF_INET6\fP である。
+.TP
+\fIh_length\fP
+バイト単位で表したアドレスの長さ。
+.TP
+\fIh_addr_list\fP
+ホストのネットワークアドレスへのポインタの配列。 配列は NULL ポインタで終端される。 ネットワークアドレスはネットワークバイトオーダ形式である。
+.TP
+\fIh_addr\fP
+\fIh_addr_list\fP の最初のアドレス。過去との互換性を保つためのものである。
+.SH 返り値
+\fBgethostbyname\fP() および \fBgethostbyaddr\fP() 関数は \fIhostent\fP 構造体を返す。エラーが起こったら
+NULL ポインタを返す。エラーの際には \fIh_errno\fP 変数がエラーの番号を保持する。 返り値が NULL
+でない場合、静的データをポインタで指していることもある。 以下の「注意」を参照すること。
+.SH エラー
+\fIh_errno\fP 変数は以下の値を取りうる。
+.TP
+\fBHOST_NOT_FOUND\fP
+指定したホストが見つからない。
+.TP
+\fBNO_ADDRESS または NO_DATA\fP
+指定した名前は有効だが IP アドレスを持っていない。
+.TP
+\fBNO_RECOVERY\fP
+ネームサーバの復旧不能なエラーが起こった。
+.TP
+\fBTRY_AGAIN\fP
+authoritative なネームサーバで一時的なエラーが起こった。 時間をおいてもう一度試すこと。
+.SH ファイル
+.TP
+\fI/etc/host.conf\fP
+名前解決の設定ファイル
+.TP
+\fI/etc/hosts\fP
+ホストのデータベースファイル
+.TP
+\fI/etc/nsswitch.conf\fP
+ネームサービス切替設定
+.SH 準拠
+POSIX.1\-2001 では、 \fBgethostbyname\fP(), \fBgethostbyaddr\fP(), \fBsethostent\fP(),
+\fBendhostent\fP(), \fBgethostent\fP(), \fIh_errno\fP が規定されており、 \fBgethostbyaddr\fP() と
+\fBgethostbyname\fP() は廃止予定であるとされている。 POSIX.1\-2008 では \fBgethostbyname\fP(),
+\fBgethostbyaddr\fP(), \fIh_errno\fP の仕様が削除されている。 代わりに、 \fBgetaddrinfo\fP(3) と
+\fBgetnameinfo\fP(3) の使用が推奨されている。
+.SH 注意
+\fBgethostbyname\fP() および \fBgethostbyaddr\fP() 関数は静的データへのポインタを返す。
+このポインタは、その後の呼び出しで上書きされるかもしれない。 \fIhostent\fP
+構造体はポインタを含んでいるので、構造体のコピーだけでは不十分である; より深いコピーが必要である。
.LP
-¥ª¥ê¥¸¥Ê¥ë¤Î BSD ¤Î¼ÂÁõ¤Ç¤Ï¡¢
-.BR gethostbyname ()
-¤Î
-.I len
-°ú¤¿ô¤Ï
-.I int
-¤Ç¤¢¤Ã¤¿¡£
-SUSv2 ɸ½à¤Ï¥Ð¥°¤¬Â¿¤¯¡¢
-.BR gethostbyaddr ()
-¤Î
-.I len
-¥Ñ¥é¥á¡¼¥¿¤ò
-.I size_t
-·¿¤È¤·¤ÆÀë¸À¤·¤Æ¤¤¤ë¡£
-(¤³¤ì¤Ï¸í¤ê¤Ç¡¢
-.I size_t
-·¿¤Ç¤Ï¤Ê¤¯
-.I int
-·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-POSIX.1-2001 ¤Ç¤Ï¤³¤ì¤ò
-.I socklen_t
-¤È¤·¤Æ¤¤¤ë¤¬¡¢¤³¤ì¤Ï OK¡£)
-.BR accept (2)
-¤â»²¾È¡£
+オリジナルの BSD の実装では、 \fBgethostbyname\fP() の \fIlen\fP 引き数は \fIint\fP であった。 SUSv2
+標準はバグが多く、 \fBgethostbyaddr\fP() の \fIlen\fP パラメータを \fIsize_t\fP 型として宣言している。 (これは誤りで、
+\fIsize_t\fP 型ではなく \fIint\fP 型でなければならない。 POSIX.1\-2001 ではこれを \fIsocklen_t\fP
+としているが、これは OK。) \fBaccept\fP(2) も参照。
.LP
-.BR gethostbyaddr ()
-¤Î BSD ¤Î¥×¥í¥È¥¿¥¤¥×¤Ï¡¢ºÇ½é¤Î°ú¤¿ô¤È¤·¤Æ
-.I const char *
-¤ò»È¤¦¡£
-.SS "System V/POSIX ³ÈÄ¥"
-POSIX ¤Ç¤Ï¡¢
-.BR gethostent ()
-¤¬É¬¿Ü¤È¤µ¤ì¤Æ¤¤¤ë¡£
-¤³¤Î´Ø¿ô¤Ï¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£
-DNS/BIND ¤ò»È¤¦¾ì¹ç¤Ï¤¢¤Þ¤ê°ÕÌ£¤ò»ý¤¿¤Ê¤¤¤¬¡¢
-¥Û¥¹¥È¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ 1 ¹Ô¤º¤ÄÆɤ߹þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¾ì¹ç¤Ï°ÕÌ£¤¬¤¢¤ë¡£
-¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢¤³¤Î̾Á°¤Î¥ë¡¼¥Á¥ó¤Ï¥Õ¥¡¥¤¥ë
-.I /etc/hosts
-¤òÆɤ߹þ¤à¡£
-.\" Î㤨¤Ð¡¢Linux, FreeBSD, Unixware, HP-UX
-DNS ¥µ¥Ý¡¼¥È¤Ê¤·¤Ç¥é¥¤¥Ö¥é¥ê¤¬¥Ó¥ë¥É¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ßÍøÍѲÄǽ¤Ç¤¢¤ë¡£
-.\" Î㤨¤Ð¡¢FreeBSD, AIX
-glibc ÈÇ¤Ï ipv6 ¥¨¥ó¥È¥ê¤ò̵»ë¤¹¤ë¡£
-¤³¤Î´Ø¿ô¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È (reentrant) ¤Ç¤Ï¤Ê¤¯¡¢
-glibc ¤Ë¤Ï¥ê¥¨¥ó¥È¥é¥ó¥ÈÈǤÎ
-.BR gethostent_r ()
-¤¬Äɲ䵤줿¡£
-.SS "GNU ³ÈÄ¥"
-glibc2 ¤Ë¤Ï
-.BR gethostbyname2 ()
-¤â¤¢¤ê¡¢
-.BR gethostbyname ()
-¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¤¬¡¢
-¤³¤Á¤é¤Ï¥¢¥É¥ì¥¹¤¬Â°¤¹¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
+\fBgethostbyaddr\fP() の BSD のプロトタイプは、最初の引き数として \fIconst char *\fP を使う。
+.SS "System V/POSIX 拡張"
+.\" e.g., Linux, FreeBSD, UnixWare, HP-UX
+.\" e.g., FreeBSD, AIX
+POSIX では、 \fBgethostent\fP() が必須とされている。 この関数はホストデータベースの次のエントリを返す。 DNS/BIND
+を使う場合はあまり意味を持たないが、 ホストデータベースが 1 行ずつ読み込まれるファイルである場合は意味がある。
+多くのシステムでは、この名前のルーチンはファイル \fI/etc/hosts\fP を読み込む。 DNS
+サポートなしでライブラリがビルドされた場合にのみ利用可能である。 glibc 版は ipv6 エントリを無視する。 この関数はリエントラント
+(reentrant) ではなく、 glibc にはリエントラント版の \fBgethostent_r\fP() が追加された。
+.SS "GNU 拡張"
+glibc2 には \fBgethostbyname2\fP() もあり、 \fBgethostbyname\fP() と同じように動作するが、
+こちらはアドレスが属するアドレスファミリーを指定することができる。
.LP
-glibc2 ¤Ë¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ê
-.BR gethostent_r (),
-.BR gethostbyaddr_r (),
-.BR gethostbyname_r ()
-¤È
-.BR gethostbyname2_r ()
-¤â¤¢¤ë¡£
-¸Æ¤Ó½Ð¤·Â¦¤Ï¡¢À®¸ù»þ¤Ë·ë²Ì¤¬³ÊǼ¤µ¤ì¤ë
-.I hostent
-¹½Â¤ÂÎ
-.I ret
-¤È¡¢Â礤µ
-.I buflen
-¤Î°ì»þŪ¤Êºî¶È¥Ð¥Ã¥Õ¥¡
-.I buf
-¤òÄ󶡤¹¤ë¡£
-¥³¡¼¥ë½ªÎ»¸å¡¢À®¸ù¤·¤¿¾ì¹ç
-.I result
-¤Ï·ë²Ì¤ò»Ø¤·¤Æ¤¤¤ë¡£
-¥¨¥é¡¼¤Î¾ì¹ç¡¢¤Þ¤¿¤Ï¥¨¥ó¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢
-.I result
-¤Ï NULL ¤Ë¤Ê¤ë¡£
-¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤·¡¢¼ºÇԤξì¹ç¤Ï 0 °Ê³°¤Î¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹¡£
-¤³¤ì¤é¤Î´Ø¿ô¤Î¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¤¬ÊÖ¤¹¥¨¥é¡¼¤Ë²Ã¤¨¤Æ¡¢
-¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢
-.I buf
-¤¬¾®¤µ¤¹¤®¤¿¾ì¹ç¤Ë
-.B ERANGE
-¤òÊÖ¤¹¡£¤³¤Î¾ì¹ç¤Ï¤â¤Ã¤ÈÂ礤ʥХåե¡¤òÍÑ°Õ¤·¤Æ
-´Ø¿ô¸Æ¤Ó½Ð¤·¤òºÆÅÙ¹Ô¤¦¤Ù¤¤Ç¤¢¤ë¡£
-Âç°èÊÑ¿ô
-.I h_errno
-¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¤¬¡¢¥¨¥é¡¼ÈÖ¹æ¤ò³ÊǼ¤¹¤ëÊÑ¿ô¤Î¥¢¥É¥ì¥¹¤¬
-.I h_errnop
-¤ËÅϤµ¤ì¤ë¡£
-.SH ¥Ð¥°
-.BR gethostbyname ()
-¤Ï¡¢16¿Ê¿ôɽ¸½¤Î¥É¥Ã¥È¶èÀÚ¤ê¤Î IPv4 ¥¢¥É¥ì¥¹Ê¸»úÎó¤ÎÍ×ÁǤòǧ¼±¤·¤Ê¤¤¡£
+glibc2 にはリエントラントな \fBgethostent_r\fP(), \fBgethostbyaddr_r\fP(),
+\fBgethostbyname_r\fP() と \fBgethostbyname2_r\fP() もある。 呼び出し側は、成功時に結果が格納される
+\fIhostent\fP 構造体 \fIret\fP と、大きさ \fIbuflen\fP の一時的な作業バッファ \fIbuf\fP を提供する。
+コール終了後、成功した場合 \fIresult\fP は結果を指している。 エラーの場合、またはエントリが見つからなかった場合、 \fIresult\fP は
+NULL になる。 これらの関数は、成功した場合 0 を返し、失敗の場合は 0 以外のエラー番号を返す。
+これらの関数のリエントラントでないバージョンが返すエラーに加えて、 これらの関数は、 \fIbuf\fP が小さすぎた場合に \fBERANGE\fP
+を返す。この場合はもっと大きなバッファを用意して 関数呼び出しを再度行うべきである。 大域変数 \fIh_errno\fP
+は変更されないが、エラー番号を格納する変数のアドレスが \fIh_errnop\fP に渡される。
+.SH バグ
.\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973
-.SH ´ØÏ¢¹àÌÜ
-.BR getaddrinfo (3),
+\fBgethostbyname\fP() は、16進数表現のドット区切りの IPv4 アドレス文字列の要素を認識しない。
+.SH 関連項目
.\" .BR getipnodebyaddr (3),
.\" .BR getipnodebyname (3),
-.BR getnameinfo (3),
-.BR inet (3),
-.BR inet_ntop (3),
-.BR inet_pton (3),
-.BR resolver (3),
-.BR hosts (5),
-.BR nsswitch.conf (5),
-.BR hostname (7),
-.BR named (8)
.\" .BR resolv+ (8)
+\fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3), \fBinet\fP(3), \fBinet_ntop\fP(3),
+\fBinet_pton\fP(3), \fBresolver\fP(3), \fBhosts\fP(5), \fBnsswitch.conf\fP(5),
+\fBhostname\fP(7), \fBnamed\fP(8)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.51 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。