OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man2 / bind.2
index 8d5c91f..733ecc0 100644 (file)
 .\" Updated 2008-02-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.77
 .\"
 .TH BIND 2 2007-12-28 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-bind \- ¥½¥±¥Ã¥È¤Ë̾Á°¤ò¤Ä¤±¤ë
-.SH ½ñ¼°
+.SH 名前
+bind \- ソケットに名前をつける
+.SH 書式
 .nf
-.BR "#include <sys/types.h>" "          /* ¡ÖÃí°Õ¡×»²¾È */"
+.BR "#include <sys/types.h>" "          /* 「注意」参照 */"
 .B #include <sys/socket.h>
 .sp
 .BI "int bind(int " sockfd ", const struct sockaddr *" addr ,
 .BI "         socklen_t " addrlen );
 .fi
-.SH ÀâÌÀ
+.SH 説明
 .BR socket (2)
-¤Ç¥½¥±¥Ã¥È¤¬ºîÀ®¤µ¤ì¤¿¤È¤­¡¢¤½¤Î¥½¥±¥Ã¥È¤Ï̾Á°¶õ´Ö (¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼) ¤Ë
-¸ºß¤¹¤ë¤¬¡¢¥¢¥É¥ì¥¹¤Ï³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¡£
+でソケットが作成されたとき、そのソケットは名前空間 (アドレス・ファミリー) に
+存在するが、アドレスは割り当てられていない。
 .BR bind ()
-¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿
+ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿
 .I sockfd
-¤Ç»²¾È¤µ¤ì¤ë¥½¥±¥Ã¥È¤Ë
+で参照されるソケットに
 .I addr
-¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ë¡£
+で指定されたアドレスを割り当てる。
 .I addrlen
-¤Ë¤Ï
+には
 .I addr
-¤¬»Ø¤¹¥¢¥É¥ì¥¹¹½Â¤ÂΤΥµ¥¤¥º¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£
-ÅÁÅýŪ¤Ë¤³¤ÎÁàºî¤Ï
-¡Ö¥½¥±¥Ã¥È¤Ë̾Á°¤ò¤Ä¤±¤ë¡×
-¤È¸Æ¤Ð¤ì¤ë¡£
+が指すアドレス構造体のサイズをバイト単位で指定する。
+伝統的にこの操作は
+「ソケットに名前をつける」
+と呼ばれる。
 .PP
 .B SOCK_STREAM
-¥½¥±¥Ã¥È¤¬Àܳ¤ò¼õ¤±ÉÕ¤±¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï
+ソケットが接続を受け付けられるようにするには
 .RB ( accept (2)
-¤ò»²¾È)¡¢Ä̾綠¤ÎÁ°¤Ë
+を参照)、通常その前に
 .BR bind ()
-¤ò»ÈÍѤ·¤Æ¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤ò³ä¤êÅö¤Æ¤ëɬÍפ¬¤¢¤ë¡£
+を使用してローカルアドレスを割り当てる必要がある。
 
-̾Á°ÉÕ¤±¤Î¥ë¡¼¥ë¤Ï¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤´¤È¤Ë°Û¤Ê¤Ã¤Æ¤¤¤ë¡£¾ÜºÙ¤Ê¾ðÊó¤Ï
-Âè 7 ¾Ï¤Î³Æ¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£
+名前付けのルールはアドレス・ファミリーごとに異なっている。詳細な情報は
+第 7 章の各マニュアルを参照すること。
 .B AF_INET
-¤Ï
+は
 .BR ip (7)
-¤ò¡¢
+を、
 .B AF_INET6
-¤Ï
+は
 .BR ipv6 (7)
-¤ò¡¢
+を、
 .B AF_UNIX
-¤Ï
+は
 .BR unix (7)
-¤ò¡¢
+を、
 .B AF_APPLETALK
-¤Ï
+は
 .BR ddp (7)
-¤ò¡¢
+を、
 .B AF_PACKET
-¤Ï
+は
 .BR packet (7)
-¤ò¡¢
+を、
 .B AF_X25
-¤Ï
+は
 .BR x25 (7)
-¤ò¡¢
+を、
 .B AF_NETLINK
-¤Ï
+は
 .BR netlink (7)
-¤ò»²¾È¡£
+を参照。
 
 .I addr
-°ú¤­¿ô¤Ë¼ÂºÝ¤Ë¤É¤Î¤è¤¦¤Ê¹½Â¤ÂΤ¬ÅϤµ¤ì¤ë¤«¤Ï¡¢
-¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë°Í¸¤¹¤ë¡£
+引き数に実際にどのような構造体が渡されるかは、
+アドレス・ファミリーに依存する。
 .I sockaddr
-¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ê´¶¤¸¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
+構造体は以下のような感じで定義されている:
 .in +4n
 .nf
 
@@ -156,122 +156,122 @@ struct sockaddr {
 
 .fi
 .in
-¤³¤Î¹½Â¤ÂΤϡ¢
+この構造体は、
 .I addr
-¤ËÅϤµ¤ì¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤ò¥­¥ã¥¹¥È¤·¡¢
-¥³¥ó¥Ñ¥¤¥é¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞ¤¨¤ë¤¿¤á¤À¤±¤Ë¸ºß¤¹¤ë¡£
-²¼µ­¤Î¡ÖÎã¡×¤ò»²¾È¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£
-¼ºÇÔ¤¹¤ë¤È \-1 ¤òÊÖ¤·¡¢
+に渡される構造体へのポインタをキャストし、
+コンパイラの警告メッセージを抑えるためだけに存在する。
+下記の「例」を参照。
+.SH 返り値
+成功すると 0 を返す。
+失敗すると \-1 を返し、
 .I errno
-¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
+を適切に設定する。
+.SH ã\82¨ã\83©ã\83¼
 .TP
 .B EACCES
 .\" e.g., privileged port in AF_INET domain
-¤½¤Î¥¢¥É¥ì¥¹¤ÏÊݸ¤ì¤Æ¤¤¤Æ¡¢¤«¤Ä¥æ¡¼¥¶¤¬¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¤Ï¤Ê¤¤¡£
+そのアドレスは保護されていて、かつユーザがスーパーユーザではない。
 .TP
 .B EADDRINUSE
-»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬´û¤Ë»ÈÍÑÃæ¤Ç¤¢¤ë¡£
+指定されたアドレスが既に使用中である。
 .TP
 .B EBADF
 .I sockfd
-¤¬ÉÔÀµ¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£
+が不正なディスクリプタである。
 .TP
 .B EINVAL
-¥½¥±¥Ã¥È¤¬¤¹¤Ç¤Ë¥¢¥É¥ì¥¹¤Ë·ë¤Ó¤Ä¤± (bind) ¤é¤ì¤Æ¤¤¤ë¡£
-.\" ¤³¤ì¤Ï¾­ÍèÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
-.\" ¾Ü¤·¤¯¤Ï
+ソケットがすでにアドレスに結びつけ (bind) られている。
+.\" これは将来変更されるかもしれない。
+.\" 詳しくは
 .\" .I linux/unix/sock.c
-.\" ¤ò»²¾È¤¹¤ë¤³¤È¡£
+.\" を参照すること。
 .B ENOTSOCK
 .I sockfd
-¤¬¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢¥½¥±¥Ã¥È¤ËÂФ¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£
+がファイルに対するディスクリプタで、ソケットに対するものではない。
 .PP
-°Ê²¼¤Î¥¨¥é¡¼¤Ï UNIX¥É¥á¥¤¥ó
+以下のエラーは UNIXドメイン
 .RB ( AF_UNIX )
-¤Î¥½¥±¥Ã¥ÈÆÃÍ­¤Ç¤¢¤ë:
+のソケット特有である:
 .TP
 .B EACCES
-¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ˸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤
+パス名の構成要素に検索許可 (search permission) がない
 .RB ( path_resolution (7)
-¤â»²¾È¤¹¤ë¤³¤È)¡£
+も参照すること)。
 .TP
 .B EADDRNOTAVAIL
-¸ºß¤·¤Ê¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬Í׵ᤵ¤ì¤¿¤«¡¢Í׵ᤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬
-¥í¡¼¥«¥ë¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£
+存在しないインタフェースが要求されたか、要求されたアドレスが
+ローカルではなかった。
 .TP
 .B EFAULT
 .I addr
-¤¬¥æ¡¼¥¶¤Î¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£
+がユーザのアクセス可能なアドレス空間の外を指している。
 .TP
 .B EINVAL
 .I addrlen
-¤¬ÉÔÀµ¤Ç¤¢¤ë¤«¡¢¥½¥±¥Ã¥È¤¬
+が不正であるか、ソケットが
 .B AF_UNIX
-¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ï¤Ê¤¤¡£
+ファミリーではない。
 .TP
 .B ELOOP
 .I addr
-¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£
+を解決する際に遭遇したシンボリック・リンクが多過ぎる。
 .TP
 .B ENAMETOOLONG
 .I addr
-¤¬Ä¹²á¤®¤ë¡£
+が長過ぎる。
 .TP
 .B ENOENT
-¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¡£
+ファイルが存在しない。
 .TP
 .B ENOMEM
-¥«¡¼¥Í¥ë¤Ë¡¢ÍøÍѲÄǽ¤Ê¥á¥â¥ê¡¼¤¬½½Ê¬¤Ë¤Ê¤¤¡£
+カーネルに、利用可能なメモリーが十分にない。
 .TP
 .B ENOTDIR
-¥Ñ¥¹Ì¾¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£
+パス名の構成要素がディレクトリではない。
 .TP
 .B EROFS
-¥½¥±¥Ã¥È inode ¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤ë¡£
-.SH ½àµò
+ソケット inode が読み込み専用のファイルシステム上にある。
+.SH 準拠
 SVr4, 4.4BSD, POSIX.1-2001
 .RB ( bind ()
-¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿)¡£
-.\" SVr4 ¤Ë¤Ï¾¤Ë¡¢°ìÈ̤Υ¨¥é¡¼¾õÂÖ
+は 4.2BSD で最初に現われた)。
+.\" SVr4 には他に、一般のエラー状態
 .\" .B ENOSR
-.\" µÚ¤Ó UNIX ¥É¥á¥¤¥ó¤Î¥¨¥é¡¼¾õÂÖ
+.\" 及び UNIX ドメインのエラー状態
 .\" .BR EIO ,
 .\" .B EISDIR
-.\" ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£
-.SH Ãí°Õ
-POSIX.1-2001 ¤Ç¤Ï
+.\" についての記述がある。
+.SH 注意
+POSIX.1-2001 では
 .I <sys/types.h>
-¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢
-Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£
-¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬
-ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò
-¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£
+のインクルードは必須とされておらず、
+Linux ではこのヘッダファイルは必要ではない。
+しかし、歴史的には、いくつかの実装 (BSD 系) でこのヘッダファイルが
+必要であり、移植性が必要なアプリケーションではこのファイルを
+インクルードするのが賢明であろう。
 
 .BR bind ()
-¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï (4.x BSD ¤ä libc4, libc5 ¤ÈƱÍͤË) ¼ÂºÝ¤Ë¤Ï
+の三番目の引き数は (4.x BSD や libc4, libc5 と同様に) 実際には
 .I int
-¤Ç¤¢¤ë¡£glibc ¤Ç¤â»È¤ï¤ì¤Æ¤¤¤ë¸½ºß¤Î
+である。glibc でも使われている現在の
 .I socklen_t
-¤Ë´Ø¤·¤Æ¡¢POSIX ¤Ë¤Ï¾¯¤·º®Í𤬤¢¤ë¡£
-¾Ü¤·¤¯¤Ï
+に関して、POSIX には少し混乱がある。
+詳しくは
 .BR accept (2)
-¤ò»²¾È¤Î¤³¤È¡£
-.SH ¥Ð¥°
-Æ©²áŪ¥×¥í¥­¥· (transparent proxy) ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£
+を参照のこと。
+.SH ã\83\90ã\82°
+透過的プロキシ (transparent proxy) オプションについて記述していない。
 .\" FIXME What *are* transparent proxy options?
-.SH Îã
-¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥É¥á¥¤¥ó¡¦¥½¥±¥Ã¥È¤Ç¤Î
+.SH 
+インターネット・ドメイン・ソケットでの
 .BR bind ()
-¤ÎÍøÍÑÎ㤬
+の利用例が
 .BR getaddrinfo (3)
-¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£
+に記載されている。
 
-°Ê²¼¤ÎÎã¤Ï¡¢UNIX ¥É¥á¥¤¥ó
+以下の例は、UNIX ドメイン
 .RB ( AF_UNIX )
-¤Ç¥¹¥È¥ê¡¼¥à¥½¥±¥Ã¥È¤ò bind ¤¹¤ëÊýË¡¤ò¼¨¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£
+でストリームソケットを bind する方法を示したものである。
 .\" listen.7 refers to this example.
 .\" accept.7 refers to this example.
 .\" unix.7 refers to this example.
@@ -328,7 +328,7 @@ main(int argc, char *argv[])
        should be deleted using unlink(2) or remove(3) */
 }
 .fi
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .BR accept (2),
 .BR connect (2),
 .BR getsockname (2),