OSDN Git Service

(split) LDP: Update release pages based on LDP 3.54 release
[linuxjm/LDP_man-pages.git] / release / man2 / socket.2
index 0aa89b0..78b0d6e 100644 (file)
@@ -1,7 +1,8 @@
-'\" t
+.\" t
 .\" Copyright (c) 1983, 1991 The Regents of the University of California.
 .\" All rights reserved.
 .\"
+.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
 .\" Redistribution and use in source and binary forms, with or without
 .\" modification, are permitted provided that the following conditions
 .\" are met:
@@ -29,6 +30,7 @@
 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
+.\" %%%LICENSE_END
 .\"
 .\"     $Id: socket.2,v 1.4 1999/05/13 11:33:42 freitag Exp $
 .\"
 .\" Modified 2002-07-17 by Michael Kerrisk <mtk.manpages@gmail.com>
 .\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
 .\"         all rights reserved.
 .\" Translated Mon Mar  3 23:40:11 JST 1997
 .\" Updated Mon Oct 15 JST 2001 by Kentaro Shirakata <argrath@ub32.org>
 .\" Updated Mon Oct 26 JST 2002 by Kentaro Shirakata <argrath@ub32.org>
 .\" Updated 2008-11-09, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.13
+.\" Updated 2012-05-29, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-03-25, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.\"WORD:       endpoint                Ã¼ÅÀ
-.\"WORD:       descriptor              ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼
-.\"WORD:       link layer              ¥ê¥ó¥¯ÁØ
-.\"WORD:       byte stream             ¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à
-.\"WORD:       out-of-band             ÂÓ°è³°
-.\"WORD:       sequenced               ½ç½øÀ­¤Î¤¢¤ë
-.\"WORD:       reliable                ¿®ÍêÀ­¤Î¤¢¤ë
-.\"WORD:       two-way                 ÁÐÊý¸þ¤Î
-.\"WORD:       datagram                ¥Ç¡¼¥¿¥°¥é¥à
-.\"WORD:       implement               ¼ÂÁõ
-.\"WORD:       super-user              ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼
-.\"WORD:       full-duplex             Á´Æó½Å
-.\"WORD:       non-blocking I/O        ÈóÄä»ß I/O
-.\"WORD:       asynchronous            ÈóƱ´ü
-.\"
-.TH SOCKET 2 2009-01-19 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-socket \- ÄÌ¿®¤Î¤¿¤á¤ÎüÅÀ(endpoint)¤òºîÀ®¤¹¤ë
-.SH ½ñ¼°
-.BR "#include <sys/types.h>" "          /* ¡ÖÃí°Õ¡×»²¾È */"
+.TH SOCKET 2 2009\-01\-19 Linux "Linux Programmer's Manual"
+.SH 名前
+socket \- 通信のための端点(endpoint)を作成する
+.SH 書式
+\fB#include <sys/types.h>\fP /* 「注意」参照 */
 .br
-.B #include <sys/socket.h>
+\fB#include <sys/socket.h>\fP
 .sp
-.BI "int socket(int " domain ", int " type ", int " protocol );
-.SH ÀâÌÀ
-.BR socket ()
-¤ÏÄÌ¿®¤Î¤¿¤á¤ÎüÅÀ(endpoint)¤òºîÀ®¤·¡¢¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼(descriptor)¤òÊÖ¤¹¡£
+\fBint socket(int \fP\fIdomain\fP\fB, int \fP\fItype\fP\fB, int \fP\fIprotocol\fP\fB);\fP
+.SH 説明
+\fBsocket\fP()  は通信のための端点(endpoint)を作成し、ディスクリプター(descriptor)を返す。
 .PP
-.I domain
-°ú¿ô¤ÏÄÌ¿®¤ò¹Ô¤Ê¤¦¥É¥á¥¤¥ó¤ò»ØÄꤹ¤ë; ¤³¤ì¤Ï¤É¤Î
-¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê(protocol family)¤òÄÌ¿®¤Ë»ÈÍѤ¹¤ë¤«¤ò»ØÄꤹ¤ë¡£
-¤³¤ì¤é¤Î¥Õ¥¡¥ß¥ê¤Ï
-.I <sys/socket.h>
-¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
-¸½ºß¡¢Íý²ò¤Ç¤­¤ë¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°Ê²¼¤ÎÄ̤ꡣ
+\fIdomain\fP 引数は通信を行なうドメインを指定する; これはどの プロトコル・ファミリ(protocol
+family)を通信に使用するかを指定する。 これらのファミリは \fI<sys/socket.h>\fP に定義されている。
+現在、理解できるフォーマットは以下の通り。
 .TS
 tab(:);
 l l l.
-̾Á°:ÌÜŪ:¥Þ¥Ë¥å¥¢¥ë
+名前:目的:マニュアル
 T{
-.BR AF_UNIX ", " AF_LOCAL
+\fBAF_UNIX\fP, \fBAF_LOCAL\fP
 T}:T{
-¥í¡¼¥«¥ëÄÌ¿®
+ローカル通信
 T}:T{
-.BR unix (7)
+\fBunix\fP(7)
 T}
 T{
-.B AF_INET
-T}:IPv4 ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥×¥í¥È¥³¥ë:T{
-.BR ip (7)
+\fBAF_INET\fP
+T}:IPv4 インターネット・プロトコル:T{
+\fBip\fP(7)
 T}
 T{
-.B AF_INET6
-T}:IPv6 ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥×¥í¥È¥³¥ë:T{
-.BR ipv6 (7)
+\fBAF_INET6\fP
+T}:IPv6 インターネット・プロトコル:T{
+\fBipv6\fP(7)
 T}
 T{
-.B AF_IPX
-T}:IPX \- Novell ¥×¥í¥È¥³¥ë:
+\fBAF_IPX\fP
+T}:IPX \- Novell プロトコル:
 T{
-.B AF_NETLINK
+\fBAF_NETLINK\fP
 T}:T{
-¥«¡¼¥Í¥ë¡¦¥æ¡¼¥¶¡¦¥Ç¥Ð¥¤¥¹
+ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83¦ã\83¼ã\82¶ã\83»ã\83\87ã\83\90ã\82¤ã\82¹
 T}:T{
-.BR netlink (7)
+\fBnetlink\fP(7)
 T}
 T{
-.B AF_X25
-T}:ITU-T X.25 / ISO-8208 ¥×¥í¥È¥³¥ë:T{
-.BR x25 (7)
+\fBAF_X25\fP
+T}:ITU\-T X.25 / ISO\-8208 プロトコル:T{
+\fBx25\fP(7)
 T}
 T{
-.B AF_AX25
+\fBAF_AX25\fP
 T}:T{
-¥¢¥Þ¥Á¥å¥¢ÌµÀþ AX.25 ¥×¥í¥È¥³¥ë
+アマチュア無線 AX.25 プロトコル
 T}:
 T{
-.B AF_ATMPVC
-T}:À¸¤Î ATM PVC ¤Ë¥¢¥¯¥»¥¹¤¹¤ë:
+\fBAF_ATMPVC\fP
+T}:生の ATM PVC にアクセスする:
 T{
-.B AF_APPLETALK
-T}:¥¢¥Ã¥×¥ë¥È¡¼¥¯:T{
-.BR ddp (7)
+\fBAF_APPLETALK\fP
+T}:ã\82¢ã\83\83ã\83\97ã\83«ã\83\88ã\83¼ã\82¯:T{
+\fBddp\fP(7)
 T}
 T{
-.B AF_PACKET
+\fBAF_PACKET\fP
 T}:T{
-Äã¥ì¥Ù¥ë¤Î¥Ñ¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹
+ä½\8eã\83¬ã\83\99ã\83«ã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹
 T}:T{
-.BR packet (7)
+\fBpacket\fP(7)
 T}
 .TE
 .PP
-¥½¥±¥Ã¥È¤Ï
-.I type
-¤Ç»ØÄꤵ¤ì¤ë·¿¤ò»ý¤Á¡¢¤½¤ì¤ÏÄÌ¿®Êý¼°(semantics)¤ò»ØÄꤹ¤ë¡£
-ÄêµÁ¤µ¤ì¤Æ¤¤¤ë·¿¤Ï¸½ºß°Ê²¼¤ÎÄ̤ꡣ
-.TP 16
-.B SOCK_STREAM
-½ç½øÀ­¤È¿®ÍêÀ­¤¬¤¢¤ê¡¢ÁÐÊý¸þ¤Î¡¢Àܳ¤µ¤ì¤¿
-¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à(byte stream)¤òÄ󶡤¹¤ë¡£
-ÂÓ°è³°(out-of-band)¥Ç¡¼¥¿Å¾Á÷¥á¥«¥Ë¥º¥à¤â¥µ¥Ý¡¼¥È¤µ¤ì¤ë¡£
-.TP
-.B SOCK_DGRAM
-¥Ç¡¼¥¿¥°¥é¥à(Àܳ¡¢¿®ÍêÀ­Ìµ¤·¡¢¸ÇÄêºÇÂçĹ¥á¥Ã¥»¡¼¥¸)
-¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£
-.TP
-.B SOCK_SEQPACKET
-¸ÇÄêºÇÂçĹ¤Î¥Ç¡¼¥¿¥°¥é¥àžÁ÷¥Ñ¥¹¤Ë´ð¤Å¤¤¤¿½ç½øÀ­¡¢¿®ÍêÀ­¤Î¤¢¤ë
-ÁÐÊý¸þ¤ÎÀܳ¤Ë´ð¤Å¤¤¤¿ÄÌ¿®¤òÄ󶡤¹¤ë¡£¼õ¤±¼è¤ê¦¤Ç¤Ï¤½¤ì¤¾¤ì¤ÎÆþÎÏ
-¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ç¥Ñ¥±¥Ã¥ÈÁ´ÂΤòÆɤ߼è¤ë¤³¤È¤¬Í׵ᤵ¤ì¤ë¡£
-.TP
-.B SOCK_RAW
-À¸¤Î¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥×¥í¥È¥³¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤òÄ󶡤¹¤ë¡£
-.TP
-.B SOCK_RDM
-¿®ÍêÀ­¤Ï¤¢¤ë¤¬¡¢½ç½ø¤ÏÊݾڤ·¤Ê¤¤¥Ç¡¼¥¿¥°¥é¥àÁؤòÄ󶡤¹¤ë¡£
-.TP
-.B SOCK_PACKET
-Çѻߤµ¤ì¤Æ¤ª¤ê¿·¤·¤¤¥×¥í¥°¥é¥à¤Ç»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
-.BR packet (7)
-¤ò»²¾È¤¹¤ë¤³¤È
+ソケットは \fItype\fP で指定される型を持ち、それは通信方式(semantics)を指定する。 定義されている型は現在以下の通り。
+.TP  16
+\fBSOCK_STREAM\fP
+順序性と信頼性があり、双方向の、接続された バイト・ストリーム(byte stream)を提供する。
+帯域外(out\-of\-band)データ転送メカニズムもサポートされる。
+.TP 
+\fBSOCK_DGRAM\fP
+データグラム (コネクションレス、信頼性無し、固定最大長メッセージ) をサポートする。
+.TP 
+\fBSOCK_SEQPACKET\fP
+固定最大長のデータグラム転送パスに基づいた順序性、信頼性のある 双方向の接続に基づいた通信を提供する。受け取り側ではそれぞれの入力
+システム・コールでパケット全体を読み取ることが要求される。
+.TP 
+\fBSOCK_RAW\fP
+生のネットワーク・プロトコルへのアクセスを提供する。
+.TP 
+\fBSOCK_RDM\fP
+信頼性はあるが、順序は保証しないデータグラム層を提供する。
+.TP 
+\fBSOCK_PACKET\fP
+廃止されており新しいプログラムで使用してはいけない。 \fBpacket\fP(7)  を参照すること
 .PP
-¤¢¤ë¼ï¤Î¥½¥±¥Ã¥È·¿¤¬Á´¤Æ¤Î¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
-Î㤨¤Ð
-.B SOCK_SEQPACKET
-¤Ï
-.B AF_INET
-¤Ë¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+ある種のソケット型が全てのプロトコル・ファミリで実装されているわけではない。 例えば \fBSOCK_SEQPACKET\fP は \fBAF_INET\fP
+には実装されていない。
 .PP
-Linux 2.6.27 °Ê¹ß¤Ç¤Ï¡¢
-.I type
-°ú¿ô¤ÏÆó¤ÄÌܤÎÌÜŪ¤Ë¤â»ÈÍѤµ¤ì¤ë¡£
-¥½¥±¥Ã¥È¤Î·¿¤ò»ØÄꤹ¤ë¤Î¤Ë²Ã¤¨¤Æ¡¢
-°Ê²¼¤ÎÃͤΤ¤¤¯¤Ä¤«¤ò¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýÏ (OR) ¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢
-.BR socket ()
-¤Î¿¶Éñ¤¤¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-.TP 16
-.B SOCK_NONBLOCK
-¿·¤·¤¯À¸À®¤µ¤ì¤ë¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (open file description) ¤Î
-.B O_NONBLOCK
-¥Õ¥¡¥¤¥ë¥¹¥Æ¡¼¥¿¥¹¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£
-¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤Ç¡¢
-.B O_NONBLOCK
-¤ò¥»¥Ã¥È¤¹¤ë¤¿¤á¤Ë
-.BR fcntl (2)
-¤òÄɲäǸƤӽФ¹É¬Íפ¬¤Ê¤¯¤Ê¤ë¡£
-.TP
-.B SOCK_CLOEXEC
-¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ËÂФ·¤Æ
-close-on-exec
-.RB ( FD_CLOEXEC )
-¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¡£
-¤³¤Î¥Õ¥é¥°¤¬Ìò¤ËΩ¤ÄÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢
-.BR open (2)
-¤Î
-.B O_CLOEXEC
-¥Õ¥é¥°¤ÎÀâÌÀ¤ò»²¾È¤Î¤³¤È¡£
+Linux 2.6.27 以降では、 \fItype\fP 引数は二つ目の目的にも使用される。 ソケットの型を指定するのに加えて、
+以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 \fBsocket\fP()  の振舞いを変更することができる。
+.TP  16
+\fBSOCK_NONBLOCK\fP
+新しく生成されるオープンファイル記述 (open file description) の \fBO_NONBLOCK\fP
+ファイルステータスフラグをセットする。 このフラグを使うことで、 \fBO_NONBLOCK\fP をセットするために \fBfcntl\fP(2)
+を追加で呼び出す必要がなくなる。
+.TP 
+\fBSOCK_CLOEXEC\fP
+新しいファイルディスクリプタに対して close\-on\-exec (\fBFD_CLOEXEC\fP)  フラグをセットする。
+このフラグが役に立つ理由については、 \fBopen\fP(2)  の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
 .PP
-.I protocol
-¤Ï¥½¥±¥Ã¥È¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¸ÇÍ­¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ë¡£Ä̾綠¤ì¤¾¤ì¤Î
-¥½¥±¥Ã¥È¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Î¼ïÎऴ¤È¤Ë°ì¤Ä¤Î¥×¥í¥È¥³¥ë¤Î¤ß¤ò
-¥µ¥Ý¡¼¥È¤¹¤ë¡£
-¤½¤Î¾ì¹ç¤Ï
-.I protocol
-¤Ë 0 ¤ò»ØÄê¤Ç¤­¤ë¡£
-¤·¤«¤·¡¢Â¿¤¯¤Î¥×¥í¥È¥³¥ë¤¬Â¸ºß¤·¤Æ¤â¤«¤Þ¤ï¤Ê¤¤¡£
-¤³¤Î¾ì¹ç¤Ë¤Ï¤³¤ÎÊýË¡¤Ë¤è¤ê¸ÇÍ­¤Î¥×¥í¥È¥³¥ë¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£
-»ÈÍѤµ¤ì¤ë¥×¥í¥È¥³¥ëÈÖ¹æ¤ÏÄÌ¿®¤Î¹Ô¤Ê¤ï¤ì¤ë\*(lqÄÌ¿®¥É¥á¥¤¥ó\*(rq¤Ë
-¸ÇÍ­¤Ç¤¢¤ë;
-.BR protocols (5)
-¤ò»²¾È¤¹¤ë¤³¤È¡£
-¥×¥í¥È¥³¥ë̾¤ò¤É¤¦¤ä¤Ã¤Æ¥×¥í¥È¥³¥ëÈÖ¹æ¤ËÂбþ¤µ¤»¤ë¤«¤Ë¤Ä¤¤¤Æ¤Ï
-.BR getprotoent (3)
-¤ò»²¾È¤¹¤ë¤³¤È¡£
+\fIprotocol\fP はソケットによって使用される固有のプロトコルを指定する。通常それぞれの
+ソケットは、与えられたプロトコル・ファミリの種類ごとに一つのプロトコルのみを サポートする。 その場合は \fIprotocol\fP に 0 を指定できる。
+しかし、多くのプロトコルが存在してもかまわない。 この場合にはこの方法により固有のプロトコルを指定する必要がある。
+使用されるプロトコル番号は通信の行なわれる\*(lq通信ドメイン\*(rqに 固有である; \fBprotocols\fP(5)  を参照すること。
+プロトコル名をどうやってプロトコル番号に対応させるかについては \fBgetprotoent\fP(3)  を参照すること。
 .PP
-.B SOCK_STREAM
-·¿¤Î¥½¥±¥Ã¥È¤Ï¥Ñ¥¤¥×¤Î¤è¤¦¤ÊÁ´Æó½Å¥Ð¥¤¥È¡¦¥¹¥È¥ê¡¼¥à¤Ç¤¢¤ë¡£
-¤³¤ì¤é¤Ï¥ì¥³¡¼¥É¶­³¦¤òÊݸ¤·¤Ê¤¤¡£
-¥¹¥È¥ê¡¼¥à¤Ï¡¢¥½¥±¥Ã¥È¤¬¥Ç¡¼¥¿¤òÁ÷¤Ã¤¿¤ê¼õ¤±¤¿¤ê¤¹¤ëÁ°¤Ë
-.I Àܳ¤µ¤ì¤¿
-¾õÂ֤ˤʤäƤʤ±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Â¾¤Î¥½¥±¥Ã¥È¤Ø¤ÎÀܳ¤Ï
-.BR connect (2)
-¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤ë¡£°ìÅÙÀܳ¤·¤¿¤é¥Ç¡¼¥¿¤Ï
-.BR read (2)
-¤È
-.BR write (2)
-¥³¡¼¥ë¤ä
-.BR send (2)
-¤È
-.BR recv (2)
-¥³¡¼¥ë¤ÎÊѼï¤ò»ÈÍѤ·¤ÆžÁ÷¤Ç¤­¤ë¡£
-¥»¥Ã¥·¥ç¥ó¤¬´°Î»¤·¤¿¤é
-.BR close (2)
-¤¬¹Ô¤Ê¤ï¤ì¤ë¡£ÂÓ°è³°¥Ç¡¼¥¿¤ÎžÁ÷¤â
-.BR send (2)
-¤Ëµ­½Ò¤µ¤ì¤Æ¤ª¤ê¡¢
-¼õ¿®¤â
-.BR recv (2)
-¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£
+\fBSOCK_STREAM\fP 型のソケットはパイプのような全二重バイト・ストリームである。 これらはレコード境界を保存しない。
+ストリームは、ソケットがデータを送ったり受けたりする前に \fI接続された\fP 状態になってなければならない。他のソケットへの接続は
+\fBconnect\fP(2)  コールによって行なわれる。一度接続したらデータは \fBread\fP(2)  と \fBwrite\fP(2)  コールや
+\fBsend\fP(2)  と \fBrecv\fP(2)  コールの変種を使用して転送できる。 セッションが完了したら \fBclose\fP(2)
+が行なわれる。帯域外データの転送も \fBsend\fP(2)  に記述されており、 受信も \fBrecv\fP(2)  に記述されている。
 .PP
-.B SOCK_STREAM
-¤ò¼ÂÁõ¤·¤¿ÄÌ¿®¥×¥í¥È¥³¥ë¤Ï¥Ç¡¼¥¿¤Ë»¼º¤ä½ÅÊ£¤¬¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¡£
-¤â¤·Áê¼ê¤Î¥×¥í¥È¥³¥ë¤¬¥Ð¥Ã¥Õ¥¡¡¼¶õ´Ö¤ò»ý¤Ä
-¥Ç¡¼¥¿¤ÎÃÇÊÒ¤òŬÅö¤Ê»þ´Ö¤Î¤¦¤Á¤ËžÁ÷¤Ç¤­¤Ê¤±¤ì¤Ð¡¢
-Àܳ¤ÏÃǤ¿¤ì¤¿¤È¤ß¤Ê¤¹¡£¤½¤Î¥½¥±¥Ã¥È
-.B SO_KEEPALIVE
-¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢¥×¥í¥È¥³¥ëÆȼ«¤ÎÊýË¡¤ÇÀܳ¤ÎÁê¼ê¦¤¬¤Þ¤À
-Í­¸ú¤Ç¤¢¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
-¤â¤·¥×¥í¥»¥¹¤¬¡¢²õ¤ì¤¿¥¹¥È¥ê¡¼¥à¤Ç¥Ç¡¼¥¿¤òÁ÷¼õ¿®¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¤Ï
-.B SIGPIPE
-¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë; ¤³¤ì¤ÏÄ̾ï¤Î¤½¤Î¥·¥°¥Ê¥ë¤ò°·¤Ã¤Æ¤¤¤Ê¤¤¥×¥í¥»¥¹¤ò
-½ªÎ»¤µ¤»¤ë¡£
-.B SOCK_SEQPACKET
-¥½¥±¥Ã¥È¤Ï
-.B SOCK_STREAM
-¥½¥±¥Ã¥È¤ÈƱ¤¸¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¡£
-Í£°ì¤Î°ã¤¤¤Ï
-.BR read (2)
-¥³¡¼¥ë¤¬Í׵ᤵ¤ì¤¿Î̤Υǡ¼¥¿¤Î¤ß¤òÊÖ¤·¡¢ÅþÃ夷¤¿¥Ñ¥±¥Ã¥È¤Î»Ä¤ê¤ÎÉôʬ¤ò
-¼Î¤Æ¤Æ¤·¤Þ¤¦¤³¤È¤Ç¤¢¤ë¡£Æ±ÍͤËÆþ¤Ã¤Æ¤¯¤ë¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¶­³¦¤Ï
-Êݸ¤µ¤ì¤ë¡£
+\fBSOCK_STREAM\fP を実装した通信プロトコルはデータに損失や重複がないことを保証する。 もし相手のプロトコルがバッファー空間を持つ
+データの断片を適当な時間のうちに転送できなければ、 接続は断たれたとみなす。そのソケット \fBSO_KEEPALIVE\fP
+が有効になっている場合、プロトコル独自の方法で接続の相手側がまだ 有効であるかをチェックする。
+もしプロセスが、壊れたストリームでデータを送受信しようとした場合には \fBSIGPIPE\fP シグナルが送られる;
+これは通常のそのシグナルを扱っていないプロセスを 終了させる。 \fBSOCK_SEQPACKET\fP ソケットは \fBSOCK_STREAM\fP
+ソケットと同じシステム・コールを使用する。 唯一の違いは \fBread\fP(2)  コールが要求された量のデータのみを返し、到着したパケットの残りの部分を
+捨ててしまうことである。同様に入ってくるデータグラムの全てのメッセージ境界は 保存される。
 .PP
-.B SOCK_DGRAM
-¤È
-.B SOCK_RAW
-¥½¥±¥Ã¥È¤Ï
-.BR sendto (2)
-¥³¡¼¥ë¤Ç»ØÄꤵ¤ì¤¿Áê¼ê¤Ø¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¤ë¤³¤È¤¬µö¤µ¤ì¤Æ¤¤¤ë¡£
-¥Ç¡¼¥¿¥°¥é¥à¤Ï°ìÈ̤Ë
-.BR recvfrom (2)
-¤Ç¼õ¤±¤È¤ê¡¢
-¤³¤Î¥³¡¼¥ë¤Ï¼¡¤Î¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¿®¼Ô¤Î¥¢¥É¥ì¥¹¤È°ì½ï¤ËÊÖ¤¹¡£
+\fBSOCK_DGRAM\fP と \fBSOCK_RAW\fP ソケットは \fBsendto\fP(2)
+コールで指定された相手へデータグラムを送ることが許されている。 データグラムは一般に \fBrecvfrom\fP(2)  で受けとり、
+このコールは次のデータグラムを送信者のアドレスと一緒に返す。
 .PP
-.B SOCK_PACKET
-¤Ï¸Å¤¤¥½¥±¥Ã¥È·¿¤Ç¡¢À¸(raw)¤Î¥Ñ¥±¥Ã¥È¤ò¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤«¤é
-ľÀܼõ¿®¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£
-º£¤ÏÂå¤ï¤ê¤Ë
-.BR packet (7)
-¤òÍѤ¤¤ë¤³¤È¡£
+\fBSOCK_PACKET\fP は古いソケット型で、生(raw)のパケットをデバイスドライバから 直接受信するためのものである。 今は代わりに
+\fBpacket\fP(7)  を用いること。
 .PP
-.BR fcntl (2)
-¤Î
-.B F_SETOWN
-Áàºî¤ò»È¤Ã¤Æ¡¢¥·¥°¥Ê¥ë
-.B SIGURG
-¤ä
-.B SIGPIPE
-¤ò¼õ¤±¤È¤ë¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤ò»ØÄê¤Ç¤­¤ë¡£
-.B SIGURG
-¥·¥°¥Ê¥ë¤ÏÂÓ°è³°¥Ç¡¼¥¿¤¬ÅþÃ夷¤¿»þ¤Ë¡¢
-.B SIGPIPE
-¥·¥°¥Ê¥ë¤Ï
-.B SOCK_STREAM
-Àܳ¤¬Í½´ü¤»¤ºÀÚÃǤµ¤ì¤¿»þ¤ËÁ÷¤é¤ì¤ë¡£
-¤Þ¤¿¡¢
-.B F_SETOWN
-Áàºî¤Ï¡¢I/O ¤ä I/O ¥¤¥Ù¥ó¥È¤ÎÈóƱ´ü (asynchronous) ÄÌÃΤò
-.B SIGIO
-¤ò·Ðͳ¤Ç¼õ¤±¼è¤ë¥×¥í¥»¥¹¤ä¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×¤òÀßÄꤹ¤ë¤Î¤Ë¤â»ÈÍѤǤ­¤ë¡£
-.B F_SETOWN
-¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï
-.B FIOSETOWN
-¤Þ¤¿¤Ï
-.B SIOCSPGRP
-¤Î°ú¿ô¤Ç
-.BR ioctl (2)
-¤ò»ÈÍѤ¹¤ë¤³¤È¤ÈÅù²Á¤Ç¤¢¤ë¡£
+\fBfcntl\fP(2)  の \fBF_SETOWN\fP 操作を使って、シグナル \fBSIGURG\fP や \fBSIGPIPE\fP
+を受けとるプロセス・グループを指定できる。 \fBSIGURG\fP シグナルは帯域外データが到着した時に、 \fBSIGPIPE\fP シグナルは
+\fBSOCK_STREAM\fP 接続が予期せず切断された時に送られる。 また、 \fBF_SETOWN\fP 操作は、I/O や I/O イベントの非同期
+(asynchronous) 通知を \fBSIGIO\fP を経由で受け取るプロセスやプロセス・グループを設定するのにも使用できる。 \fBF_SETOWN\fP
+を使用することは \fBFIOSETOWN\fP または \fBSIOCSPGRP\fP の引数で \fBioctl\fP(2)  を使用することと等価である。
 .PP
-¥Í¥Ã¥È¥ï¡¼¥¯¤¬¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤Ë¥¨¥é¡¼¾õÂÖ¤òÅÁ¤¨¤¿¾ì¹ç
-(Î㤨¤Ð¡¢IP ¤Î ICMP ¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѤ·¤Æ)¤Ë¤Ï¡¢¥½¥±¥Ã¥È¤Î
-¥Ú¥ó¥Ç¥£¥ó¥°¡¦¥¨¥é¡¼¡¦¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£¼¡¤Ë¤³¤Î¥½¥±¥Ã¥È¤òÁàºî¤·¤¿
-»þ¤Ë¥Ú¥ó¥Ç¥£¥ó¥°¤µ¤ì¤Æ¤¤¤¿¥¨¥é¡¼¡¦¥³¡¼¥É¤¬ÊÖ¤µ¤ì¤ë¡£¥×¥í¥È¥³¥ë¤Ë¤è¤Ã¤Æ¤Ï
-¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Î¤è¤ê¾Ü¤·¤¤¾ðÊó¤ò¼õ¤±¼è¤ë¤¿¤á¤Ë¥½¥±¥Ã¥È¤´¤È¤Î¥¨¥é¡¼¡¦¥­¥å¡¼¤ò
-¼õ¤±¼è¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£
-.BR ip (7)
-¤Î
-.B IP_RECVERR
-¤ò»²¾È¤¹¤ë¤³¤È¡£
+ネットワークがプロトコル・モジュールにエラー状態を伝えた場合 (例えば、IP の ICMP メッセージを使用して)には、ソケットの
+ペンディング・エラー・フラグが設定される。次にこのソケットを操作した 時にペンディングされていたエラー・コードが返される。プロトコルによっては
+エラーについてのより詳しい情報を受け取るためにソケットごとのエラー・キューを 受け取ることが可能である。 \fBip\fP(7)  の
+\fBIP_RECVERR\fP を参照すること。
 .PP
-¥½¥±¥Ã¥È¤ÎÁàºî¤Ï¥½¥±¥Ã¥È¡¦¥ì¥Ù¥ë
-.I options
-¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤ë¡£
-¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤Ï
-.I <sys/socket.h>
-¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
-.BR setsockopt (2)
-¤È
-.BR getsockopt (2)
-´Ø¿ô¤Ï¤½¤ì¤¾¤ì¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤Ê¤¦¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¡¢¿·¤·¤¤¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢
-.I errno
-¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EACCES
-»ØÄꤵ¤ì¤¿¥¿¥¤¥×¤Þ¤¿¤Ï¥×¥í¥È¥³¥ë¤Î¥½¥±¥Ã¥È¤òºîÀ®¤¹¤ëµö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¡£
-.TP
-.B EAFNOSUPPORT
-»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-.TP
-.B EINVAL
-ÃΤé¤Ê¤¤¥×¥í¥È¥³¥ë¡¢¤Þ¤¿¤ÏÍøÍѤǤ­¤Ê¤¤¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¤Ç¤¢¤ë¡£
-.TP
-.B EINVAL
+ソケットの操作はソケット・レベル \fIoptions\fP によって制御される。 これらのオプションは \fI<sys/socket.h>\fP
+に定義されている。 \fBsetsockopt\fP(2)  と \fBgetsockopt\fP(2)  関数はそれぞれオプションの設定と取得を行なう。
+.SH 返り値
+成功した場合、新しいソケットのファイル・ディスクリプターを返す。 エラーが発生した場合は \-1 を返し、 \fIerrno\fP を適切に設定する。
+.SH エラー
+.TP 
+\fBEACCES\fP
+指定されたタイプまたはプロトコルのソケットを作成する許可が与えられていない。
+.TP 
+\fBEAFNOSUPPORT\fP
+指定されたアドレスファミリーがサポートされていない。
+.TP 
+\fBEINVAL\fP
+知らないプロトコル、または利用できないプロトコル・ファミリである。
+.TP 
+\fBEINVAL\fP
 .\" Since Linux 2.6.27
-.I type
-¤Ë̵¸ú¤Ê¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¡£
-.TP
-.B EMFILE
-¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥Æ¡¼¥Ö¥ë¤¬°î¤ì¤Æ¤¤¤ë¡£
-.TP
-.B ENFILE
-¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ÎÁí¿ô¤¬¥·¥¹¥Æ¥à¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£
-.TP
-.BR ENOBUFS " ¤Þ¤¿¤Ï " ENOMEM
-½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£½½Ê¬¤Ê»ñ¸»¤¬²òÊü¤µ¤ì¤ë¤Þ¤Ç¤Ï¥½¥±¥Ã¥È¤ò
-ºîÀ®¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
-.TP
-.B EPROTONOSUPPORT
-¤³¤Î¥É¥á¥¤¥ó¤Ç¤Ï»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤Þ¤¿¤Ï¥×¥í¥È¥³¥ë¡¦¥¿¥¤¥×¤¬
-¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
+\fItype\fP に無効なフラグが指定されている。
+.TP 
+\fBEMFILE\fP
+プロセスのファイルテーブルが溢れている。
+.TP 
+\fBENFILE\fP
+オープンされたファイルの総数がシステム全体の上限に達していた。
+.TP 
+\fBENOBUFS\fP または \fBENOMEM\fP
+十分なメモリがない。十分な資源が解放されるまではソケットを 作成することはできない。
+.TP 
+\fBEPROTONOSUPPORT\fP
+このドメインでは指定されたプロトコルまたはプロトコル・タイプが サポートされていない。
 .PP
-²¼°Ì¤Î¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤«¤é¾¤Î¥¨¥é¡¼¤¬À¸À®¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
-.SH ½àµò
-4.4BSD, POSIX.1-2001.
+下位のプロトコル・モジュールから他のエラーが生成されるかもしれない。
+.SH 準拠
+4.4BSD, POSIX.1\-2001.
 
-¥Õ¥é¥°
-.BR SOCK_NONBLOCK ,
-.B SOCK_CLOEXEC
-¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£
+フラグ \fBSOCK_NONBLOCK\fP, \fBSOCK_CLOEXEC\fP は Linux 固有である。
 
-.BR socket ()
-¤Ï 4.2BSD ¤ÇÅо줷¤¿¡£°ìÈ̤ˡ¢(System V ¤ÎÊѼï¤ò´Þ¤á¤Æ)
-BSD ¤Î¥½¥±¥Ã¥ÈÁؤθߴ¹À­¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë BSD °Ê³°¤Î¥·¥¹¥Æ¥à¤Ø¤Î¡¢
-¤Þ¤¿¤Ï¡¢BSD °Ê³°¤Î¥·¥¹¥Æ¥à¤«¤é¤Î°Ü¿¢¤¬¤Ç¤­¤ë¡£
-.SH Ãí°Õ
-POSIX.1-2001 ¤Ç¤Ï
-.I <sys/types.h>
-¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢
-Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£
-¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬
-ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò
-¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£
+\fBsocket\fP()  は 4.2BSD で登場した。一般に、(System V の変種を含めて)  BSD のソケット層の互換性をサポートしている
+BSD 以外のシステムへの、 または、BSD 以外のシステムからの移植ができる。
+.SH 注意
+POSIX.1\-2001 では \fI<sys/types.h>\fP のインクルードは必須とされておらず、 Linux
+ではこのヘッダファイルは必要ではない。 しかし、歴史的には、いくつかの実装 (BSD 系) でこのヘッダファイルが
+必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。
 
-4.x BSD ¤Ë¤ª¤¤¤ÆÄê¿ô¤ò»ÈÍѤ¹¤ë¾ì¹ç¡¢¥×¥í¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë¤Ï
-.BR PF_UNIX ,
-.B PF_INET
-Åù¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£°ìÊý¤Ç¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ë¤Ï
-.B AF_UNIX
-Åù¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¤·¤«¤·¤Ê¤¬¤é BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ç¤Ï
-¡Ö°ìÈ̤˥ץí¥È¥³¥ë¡¦¥Õ¥¡¥ß¥ê¡¼¤Ï¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤ÈƱ¤¸¤â¤Î¤Ç¤¢¤ë¡£¡×
-¤ÈÊݾڤ·¤Æ¤¤¤ë¡£¤½¤ì¤Ç¤½¤ì°Ê³°¤Îµ¬³Ê¤Ç¤ÏÁ´¤Æ¤Î¾ì½ê¤Ç AF_* ¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£
-.SH Îã
-.BR socket ()
-¤ÎÍøÍÑÎ㤬
-.BR getaddrinfo (3)
-¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR accept (2),
-.BR bind (2),
-.BR connect (2),
-.BR fcntl (2),
-.BR getpeername (2),
-.BR getsockname (2),
-.BR getsockopt (2),
-.BR ioctl (2),
-.BR listen (2),
-.BR read (2),
-.BR recv (2),
-.BR select (2),
-.BR send (2),
-.BR shutdown (2),
-.BR socketpair (2),
-.BR write (2),
-.BR getprotoent (3),
-.BR ip (7),
-.BR socket (7),
-.BR tcp (7),
-.BR udp (7),
-.BR unix (7)
-.PP
-\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\(rq
-¤Ï
-.I UNIX Programmer's Supplementary Documents Volume 1
-¤È¤·¤ÆºÆÈǤµ¤ì¤¿¡£
-.PP
-\(lqBSD Interprocess Communication Tutorial\(rq
-¤Ï
-.I UNIX Programmer's Supplementary Documents Volume 1
-¤È¤·¤ÆºÆÈǤµ¤ì¤¿¡£
+4.x BSD において定数を使用する場合、プロトコル・ファミリーには
+\fBPF_UNIX\fP, \fBPF_INET\fP 等を使用している。一方でアドレス・ファミリーには
+\fBAF_UNIX\fP, \fBAF_INET\fP 等が使用されている。
+しかしながら BSD のマニュアルでは 「一般にプロトコル・ファミリーは
+アドレス・ファミリーと同じものである。」 と保証している。
+それ以外の規格では全ての場所で AF_* が使用されている。
+.SH 例
+\fBsocket\fP()  の利用例が \fBgetaddrinfo\fP(3)  に記載されている。
+.SH 関連項目
+\fBaccept\fP(2), \fBbind\fP(2), \fBconnect\fP(2), \fBfcntl\fP(2), \fBgetpeername\fP(2),
+\fBgetsockname\fP(2), \fBgetsockopt\fP(2), \fBioctl\fP(2), \fBlisten\fP(2), \fBread\fP(2),
+\fBrecv\fP(2), \fBselect\fP(2), \fBsend\fP(2), \fBshutdown\fP(2), \fBsocketpair\fP(2),
+\fBwrite\fP(2), \fBgetprotoent\fP(3), \fBip\fP(7), \fBsocket\fP(7), \fBtcp\fP(7),
+\fBudp\fP(7), \fBunix\fP(7)
+
+\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\(rq and
+\(lqBSD Interprocess Communication Tutorial\(rq, (\fIUNIX Programmer's
+Supplementary Documents Volume 1.\fP として再版された)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。