.\" by Yuichi SATO <ysato444@yahoo.co.jp>
.\"
.TH GETSOCKNAME 2 2008-12-03 "Linux" "Linux Programmer's Manual"
-.SH ̾Á°
-getsockname \- ¥½¥±¥Ã¥È¤Î̾Á°¤ò¼èÆÀ¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+getsockname \- ソケットの名前を取得する
+.SH 書式
.nf
.B #include <sys/socket.h>
.sp
.BI "int getsockname(int " sockfd ", struct sockaddr *" addr \
", socklen_t *" addrlen );
.fi
-.SH ÀâÌÀ
+.SH 説明
.BR getsockname ()
-¤Ï¡¢¥½¥±¥Ã¥È
+は、ソケット
.I sockfd
-¤Ë·ë¤ÓÉÕ¤±¤é¤ì¤Æ¤¤¤ë¸½ºß¤Î¥¢¥É¥ì¥¹¤ò¡¢
+に結び付けられている現在のアドレスを、
.I addr
-¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤·¤ÆÊÖ¤¹¡£
+が指すバッファに格納して返す。
.I addrlen
-°ú¤¿ô¤Ï¡¢
+引き数は、
.I addr
-¤¬»Ø¤·¤Æ¤¤¤ëÎΰè¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤Ë½é´ü²½¤·¤Æ¤ª¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-´Ø¿ô¤¬ÊÖ¤ë»þ¤Ë¤Ï¡¢
+が指している領域のサイズ (バイト単位) に初期化しておかなければならない。
+関数が返る時には、
.I addrlen
-¤Ë¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î¼ÂºÝ¤Î¥µ¥¤¥º (¥Ð¥¤¥Èñ°Ì) ¤¬³ÊǼ¤µ¤ì¤ë¡£
+にはソケットアドレスの実際のサイズ (バイト単位) が格納される。
-ÅϤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ²á¤®¤¿¾ì¹ç¤Ï¡¢ÊÖ¤µ¤ì¤ë¥¢¥É¥ì¥¹¤ÎËöÈø¤¬ÀÚ¤êµÍ¤á¤é¤ì¤ë¡£
-¤³¤Î¾ì¹ç¤Ë¤Ï¡¢
+渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。
+この場合には、
.I addrlen
-¤Ë¤Ï¡¢¸Æ¤Ó½Ð¤·»þ¤Ë»ØÄꤵ¤ì¤¿Ãͤè¤ê¤âÂ礤ÊÃͤ¬³ÊǼ¤µ¤ì¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç 0 ¤òÊÖ¤¹¡£¼ºÇÔ¤·¤¿¾ì¹ç \-1 ¤òÊÖ¤·¡¢
+には、呼び出し時に指定された値よりも大きな値が格納される。
+.SH 返り値
+成功した場合 0 を返す。失敗した場合 \-1 を返し、
.I errno
-¤ò¥¨¥é¡¼¤ÎÆâÍƤ˽¾¤Ã¤ÆÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
+をエラーの内容に従って設定する。
+.SH ã\82¨ã\83©ã\83¼
.TP
.B EBADF
-°ú¤¿ô
+引き数
.I sockfd
-¤¬Í¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿ (descriptor) ¤Ç¤Ï¤Ê¤¤¡£
+が有効なディスクリプタ (descriptor) ではない。
.TP
.B EFAULT
-°ú¤¿ô
+引き数
.I addr
-¤Î»Ø¤·¤Æ¤¤¤ë¥á¥â¥ê¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î͸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£
+の指しているメモリがプロセスのアドレス空間の有効な部分ではない。
.TP
.B EINVAL
.I addrlen
-¤¬ÉÔÀµ¤Ç¤¢¤ë (Î㤨¤Ð¡¢Éé¤Ç¾ì¹ç¤Ê¤É)¡£
+が不正である (例えば、負で場合など)。
.TP
.B ENOBUFS
-½èÍý¤ò¤¹¤ë¤À¤±¤Î½½Ê¬¤Ê¥ê¥½¡¼¥¹¤¬¥·¥¹¥Æ¥à¤Ë̵¤¤¡£
+処理をするだけの十分なリソースがシステムに無い。
.TP
.B ENOTSOCK
-°ú¤¿ô
+引き数
.I sockfd
-¤¬¥½¥±¥Ã¥È¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë¡£
-.SH ½àµò
+がソケットではなくファイルである。
+.SH 準拠
SVr4, 4.4BSD
.RB ( getsockname ()
-´Ø¿ô¤Ï 4.2BSD ¤ÇÄɲ䵤줿), POSIX.1-2001.
-.\" SVr4 ¤Ë¤Ï¾¤Ë ENOMEM ¤È ENOSR ¤Î¥¨¥é¡¼¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤Îµ½Ò¤¬¤¢¤ë¡£
-.SH Ãí°Õ
+関数は 4.2BSD で追加された), POSIX.1-2001.
+.\" SVr4 には他に ENOMEM と ENOSR のエラーコードについての記述がある。
+.SH 注意
.BR getsockname ()
-¤Î»°ÈÖÌܤΰú¤¿ô¤Ï (4.x BSD ¤ä libc4, libc5 ¤ÈƱÍͤË) ¼ÂºÝ¤Ë¤Ï \fIint *\fP
-¤Ç¤¢¤ë¡£ glibc ¤Ç¤â»È¤ï¤ì¤Æ¤¤¤ë¸½ºß¤Î \fIsocklen_t\fP ¤Ë´Ø¤·¤Æ¡¢
-POSIX ¤Ë¤Ï¾¯¤·º®Í𤬤¢¤ë¡£
-¾Ü¤·¤¯¤Ï
+の三番目の引き数は (4.x BSD や libc4, libc5 と同様に) 実際には \fIint *\fP
+である。 glibc でも使われている現在の \fIsocklen_t\fP に関して、
+POSIX には少し混乱がある。
+詳しくは
.BR accept (2)
-¤ò»²¾È¤Î¤³¤È¡£
-.SH ´ØÏ¢¹àÌÜ
+を参照のこと。
+.SH 関連項目
.BR bind (2),
.BR socket (2),
.BR getifaddrs (3),