X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman2%2Fgetsockopt.2;h=10cc7140a84e1c69f5b9c5688c3aea70e9020785;hb=e869ba38629d24502b2599fad331e46760c356de;hp=dbb9903fe087ebd14326bc269535556303105fed;hpb=633a2252e0be3c867dce264a180a89ce8181d36f;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man2/getsockopt.2 b/release/man2/getsockopt.2 index dbb9903f..10cc7140 100644 --- a/release/man2/getsockopt.2 +++ b/release/man2/getsockopt.2 @@ -1,6 +1,7 @@ .\" 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: @@ -28,6 +29,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: getsockopt.2,v 1.1 1999/05/24 14:57:04 freitag Exp $ .\" @@ -39,6 +41,12 @@ .\" Modified 1999 by Andi Kleen . .\" Removed most stuff because it is in socket.7 now. .\" +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.\" .\" Japanese Version Copyright (c) 1996 Akira Yoshiyama .\" all rights reserved. .\" Translated Sat Jul 6 00:43:37 JST 1996 @@ -47,166 +55,85 @@ .\" by HANATAKA Shinya .\" Updated Sun Oct 12 JST 2003 by Kentaro Shirakata .\" -.TH GETSOCKOPT 2 2008-12-03 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -getsockopt, setsockopt \- ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤ÎÀßÄê¤È¼èÆÀ¤ò¹Ô¤Ê¤¦ -.SH ½ñ¼° +.TH GETSOCKOPT 2 2014\-01\-24 Linux "Linux Programmer's Manual" +.SH 名前 +getsockopt, setsockopt \- ソケットのオプションの設定と取得を行なう +.SH 書式 .nf -.BR "#include " " /* ¡ÖÃí°Õ¡×»²¾È */" +\fB#include \fP /* 「注意」参照 */ .br -.B #include +\fB#include \fP .sp -.BI "int getsockopt(int " sockfd ", int " level ", int " optname , -.BI " void *" optval ", socklen_t *" optlen ); -.BI "int setsockopt(int " sockfd ", int " level ", int " optname , -.BI " const void *" optval ", socklen_t " optlen ); +\fBint getsockopt(int \fP\fIsockfd\fP\fB, int \fP\fIlevel\fP\fB, int \fP\fIoptname\fP\fB,\fP +\fB void *\fP\fIoptval\fP\fB, socklen_t *\fP\fIoptlen\fP\fB);\fP +\fBint setsockopt(int \fP\fIsockfd\fP\fB, int \fP\fIlevel\fP\fB, int \fP\fIoptname\fP\fB,\fP +\fB const void *\fP\fIoptval\fP\fB, socklen_t \fP\fIoptlen\fP\fB);\fP .fi -.SH ÀâÌÀ -.BR getsockopt () -¤È -.BR setsockopt () -¤Ï¡¢¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿ -.I socket -¤Ç»²¾È¤µ¤ì¤ë¥½¥±¥Ã¥È¤Ë´ØÏ¢¤¹¤ë¥ª¥×¥·¥ç¥ó¤ÎÁàºî¤ò¹Ô¤¦¡£ -¥ª¥×¥·¥ç¥ó¤ÏÊ£¿ô¤Î¥×¥í¥È¥³¥ëÁØ(level)¤Ë¸ºß¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢ -¤³¤ì¤é¤Ï¾ï¤ËºÇ¾å°Ì¤Î¥½¥±¥Ã¥ÈÁؤؤÈÀßÄꤵ¤ì¤ë¡£ +.SH 説明 +\fBgetsockopt\fP() と \fBsetsockopt\fP() は、ファイルディスクリプタ \fIsocket\fP +で参照されるソケットに関連するオプションの操作を行う。 オプションは複数のプロトコル層(level)に存在するかもしれないが、 +これらは常に最上位のソケット層へと設定される。 -¥½¥±¥Ã¥È¡¦¥ª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ëºÝ¤Ë¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ÎÁØ (level) ¤È -¥ª¥×¥·¥ç¥ó¤Î̾Á°¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¥½¥±¥Ã¥È API Áؤǥª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ë°Ù¤Ë¤Ï¡¢ -.I level -¤ò -.B SOL_SOCKET -¤Ë»ØÄꤹ¤ë¡£ -¾¤ÎÁ´¤Æ¤ÎÁؤǥª¥×¥·¥ç¥ó¤òÁàºî¤¹¤ë°Ù¤Ë¤Ï¡¢Í¿¤¨¤é¤ì¤¿¥ª¥×¥·¥ç¥ó¤Î -À©¸æ¼çÂΤȤʤë¥×¥í¥È¥³¥ë¤Î¥×¥í¥È¥³¥ëÈÖ¹æ¤ò»ØÄꤹ¤ë¡£Î㤨¤Ð¡¢ -¥ª¥×¥·¥ç¥ó¤¬ -.B TCP -¥×¥í¥È¥³¥ë¤Ç²ò¼á¤µ¤ì¤ë¤Ù¤­¤³¤È¤ò»Ø¼¨¤¹¤ë¤Ë¤Ï¡¢ -.I level -¤Ë -.B TCP -¤Î¥×¥í¥È¥³¥ëÈÖ¹æ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.BR getprotoent (3) -¤ò»²¾È¤¹¤ë¤³¤È¡£ +ソケット・オプションを操作する際には、オプションの層 (level) と オプションの名前を指定しなければならない。 ソケット API +層でオプションを操作する為には、 \fIlevel\fP を \fBSOL_SOCKET\fP に指定する。 +他の全ての層でオプションを操作する為には、与えられたオプションの 制御主体となるプロトコルのプロトコル番号を指定する。例えば、 オプションが +\fBTCP\fP プロトコルで解釈されるべきことを指示するには、 \fIlevel\fP に \fBTCP\fP のプロトコル番号を指定しなければならない。 +\fBgetprotoent\fP(3) を参照すること。 -.I optval -¤È -.I optlen -°ú¤­¿ô¤Ï -.BR setsockopt () -¤Î¥ª¥×¥·¥ç¥ó¤ÎÃͤ˥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤ë¡£ -.BR getsockopt () -¤Ç¤ÏÍ׵ᤷ¤¿¥ª¥×¥·¥ç¥ó¤ÎÃͤòÊÖ¤¹¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ò»ØÄꤹ¤ë¡£ -.BR getsockopt () -¤Ç¤Ï -.I optlen -¤ÏÃͤȷë²ÌξÍѤΰú¤­¿ô¤Ç¡¢ºÇ½é¤Ë -.I optval -¤Î»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¡¼¤Î¥µ¥¤¥º¤òÍ¿¤¨¡¢¼ÂºÝ¤ËÊÖ¤µ¤ì¤ëÃͤΥµ¥¤¥º¤Ë -½ñ¤­´¹¤¨¤é¤ì¤ë¡£¤â¤·¥ª¥×¥·¥ç¥óÃͤòÍ¿¤¨¤º¡¢ÊÖ¤µ¤ì¤â¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï -.I optval -¤Ï NULL ¤Ç¤âÎɤ¤¡£ +\fIoptval\fP と \fIoptlen\fP 引き数は \fBsetsockopt\fP() のオプションの値にアクセスするために用いられる。 +\fBgetsockopt\fP() では要求したオプションの値を返すためのバッファーを指定する。 \fBgetsockopt\fP() では +\fIoptlen\fP は値と結果両用の引き数で、最初に \fIoptval\fP の指しているバッファーのサイズを与え、実際に返される値のサイズに +書き換えられる。もしオプション値を与えず、返されもしない場合には \fIoptval\fP は NULL でも良い。 -.I optname -¤ª¤è¤Ó»ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó¤Ï²ò¼á¤µ¤ì¤º¤Ë¡¢Å¬Àڤʥץí¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤Ë -ÅϤµ¤ì¤Æ²ò¼á¤µ¤ì¤ë¡£¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Õ¥¡¥¤¥ë -.I -¤Ë¤Ï¸å½Ò¤Î¥½¥±¥Ã¥ÈÁؤΥª¥×¥·¥ç¥ó¤ÎÄêµÁ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¡£ -¾¤Î¥×¥í¥È¥³¥ëÁؤǤÏ̾Á°¤ä·Á¼°¤Ï°Û¤Ê¤ë¡£ -¥Þ¥Ë¥å¥¢¥ë¤Î¥»¥¯¥·¥ç¥ó 4 ¤ÎŬÀڤʥ¨¥ó¥È¥ê¤ò»²¾È¤¹¤ë¤³¤È¡£ +\fIoptname\fP および指定されたオプションは解釈されずに、適切なプロトコル・モジュールに 渡されて解釈される。インクルード・ファイル +\fI\fP には後述のソケット層のオプションの定義が含まれている。 他のプロトコル層では名前や形式は異なる。 +マニュアルのセクション 4 の適切なエントリを参照すること。 -¤Û¤È¤ó¤É¤Î¥½¥±¥Ã¥ÈÁؤΥª¥×¥·¥ç¥ó¤Ï -.I optval -¤Ë -.I int -°ú¤­¿ô¤òÍøÍѤ¹¤ë¡£ -.BR setsockopt () -¤Ç¡¢ÆóÃÍ(boolean)¥ª¥×¥·¥ç¥ó¤òÍ­¸ú(enable)¤Ë¤¹¤ë¤Ë¤Ï¥¼¥í°Ê³°¤ò»ØÄꤷ¡¢ -̵¸ú(disable)¤Ë¤¹¤ë¤Ë¤Ï¥¼¥í¤ò»ØÄꤹ¤ë¡£ +ほとんどのソケット層のオプションは \fIoptval\fP に \fIint\fP 引き数を利用する。 \fBsetsockopt\fP() +で、二値(boolean)オプションを有効(enable)にするにはゼロ以外を指定し、 無効(disable)にするにはゼロを指定する。 .PP -ÍøÍѲÄǽ¤Ê¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ÎÀâÌÀ¤Ë´Ø¤·¤Æ¤Ï¡¢ -.BR socket (7) -¤ÈŬÀڤʥץí¥È¥³¥ë¤Î man ¥Ú¡¼¥¸¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥¼¥í¤òÊÖ¤¹¡£¥¨¥é¡¼»þ¤Ë¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢ -.I errno -¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -.TP 10 -.B EBADF -°ú¤­¿ô -.I sockfd -¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¡£ -.TP -.B EFAULT -.I optval -¤Ç»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ï¤Ê¤¤¡£ -.BR getsockopt () -¤Î¾ì¹ç¡¢ -.I optlen -¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÍ­¸ú¤ÊÉôʬ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤â¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ -.TP -.B EINVAL -.BR setsockopt () -¤Ç -.I option -¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ -.I optval -¤Ë̵¸ú¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë -(Î㤨¤Ð¡¢ -.BR ip (7) -¤ËÀâÌÀ¤¬¤¢¤ë -.B IP_ADD_MEMBERSHIP -¥ª¥×¥·¥ç¥ó¤Ê¤É)¡£ -.TP -.B ENOPROTOOPT -»ØÄꤵ¤ì¤¿ÁØ(level)¤Ë¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¸ºß¤·¤Ê¤¤¡£ -.TP -.B ENOTSOCK -°ú¤­¿ô -.I sockfd -¤Ï¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢¥½¥±¥Ã¥È¤Ç¤Ê¤¤¡£ -.SH ½àµò -SVr4, 4.4BSD (¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï 4.2BSD ¤ÇºÇ½é¤Ë¸½¤ì¤¿), -POSIX.1-2001. -.\" SVr4 ¤Ë¤Ï¾¤Ë ENOMEM ¤È ENOSR ¥¨¥é¡¼¡¦¥³¡¼¥É¤Ë¤Ä¤¤¤Æ¤âµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£ -.\" ¤·¤«¤·¡¢ +利用可能なソケットオプションの説明に関しては、 \fBsocket\fP(7) と適切なプロトコルの man ページを参照のこと。 +.SH 返り値 +成功した場合にはゼロが返される。エラー時には \-1 が返され、 \fIerrno\fP が適切に設定される。 +.SH エラー +.TP 10 +\fBEBADF\fP +引き数 \fIsockfd\fP は有効なディスクリプターでない。 +.TP +\fBEFAULT\fP +\fIoptval\fP で指定されたアドレスがプロセスのアドレス空間の有効な部分ではない。 \fBgetsockopt\fP() の場合、 \fIoptlen\fP +がプロセスのアドレス空間の有効な部分でない場合にもこのエラーが返される。 +.TP +\fBEINVAL\fP +\fBsetsockopt\fP() で \fIoption\fP が不正である。 \fIoptval\fP +に無効な値が指定された場合にも、このエラーが発生する可能性がある (例えば、 \fBip\fP(7) に説明がある \fBIP_ADD_MEMBERSHIP\fP +オプションなど)。 +.TP +\fBENOPROTOOPT\fP +指定された層(level)にはこのオプションは存在しない。 +.TP +\fBENOTSOCK\fP +引き数 \fIsockfd\fP がソケットではなくファイルである。 +.SH 準拠 +.\" SVr4 documents additional ENOMEM and ENOSR error codes, but does +.\" not document the .\" .BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO -.\" ¥ª¥×¥·¥ç¥ó¤Ë´Ø¤¹¤ëµ­½Ò¤Ï¤Ê¤¤¡£ -.SH Ãí°Õ -POSIX.1-2001 ¤Ç¤Ï -.I -¤Î¥¤¥ó¥¯¥ë¡¼¥É¤Ïɬ¿Ü¤È¤µ¤ì¤Æ¤ª¤é¤º¡¢ -Linux ¤Ç¤Ï¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÏɬÍפǤϤʤ¤¡£ -¤·¤«¤·¡¢Îò»ËŪ¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¼ÂÁõ (BSD ·Ï) ¤Ç¤³¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬ -ɬÍפǤ¢¤ê¡¢°Ü¿¢À­¤¬É¬Íפʥ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤ò -¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤Î¤¬¸­ÌÀ¤Ç¤¢¤í¤¦¡£ +.\" options +SVr4, 4.4BSD (これらのシステム・コールは 4.2BSD で最初に現れた), POSIX.1\-2001. +.SH 注意 +POSIX.1\-2001 では \fI\fP のインクルードは必須とされておらず、 Linux +ではこのヘッダファイルは必要ではない。 しかし、歴史的には、いくつかの実装 (BSD ç³») でこのヘッダファイルが +必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。 -.BR getsockopt () -¤È -.BR setsockopt () -¤Î -.I optlen -°ú¤­¿ô¤Ï¼ÂºÝ¤Ï -.I int [*] -¤Ç¤¢¤ë (¤½¤·¤Æ 4.x BSD ¤È libc4 ¤È libc5 ¤Ï¤½¤¦¤Ê¤Ã¤Æ¤¤¤ë)¡£ -POSIX ¤Ç¤Ïäþ;¶ÊÀÞ¤ò·Ð¤Æ¸½ºß¤Î -.I socklen_t -¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢ -glibc ¤Ç¤â -.I socklen_t -¤ò»È¤Ã¤Æ¤¤¤ë¡£ -.BR accept (2) -¤â»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° -¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Î¤¤¤¯¤Ä¤«¤Ï¥·¥¹¥Æ¥à¤Î¤è¤êÄ㤤ÁØ¤Ç -½èÍý¤µ¤ì¤ë¤Ù¤­¤Ç¤¢¤ë¡£ -.SH ´ØÏ¢¹àÌÜ -.BR ioctl (2), -.BR socket (2), -.BR getprotoent (3), -.BR protocols (5), -.BR socket (7), -.BR tcp (7), -.BR unix (7) +\fBgetsockopt\fP() と \fBsetsockopt\fP() の \fIoptlen\fP 引き数は実際は \fIint [*]\fP である (そして +4.x BSD と libc4 と libc5 はそうなっている)。 POSIX では紆余曲折を経て現在の \fIsocklen_t\fP になっており、 +glibc でも \fIsocklen_t\fP を使っている。 \fBaccept\fP(2) も参照のこと。 +.SH バグ +ソケットのオプションのいくつかはシステムのより低い層で 処理されるべきである。 +.SH 関連項目 +\fBioctl\fP(2), \fBsocket\fP(2), \fBgetprotoent\fP(3), \fBprotocols\fP(5), \fBip\fP(7), +\fBsocket\fP(7), \fBtcp\fP(7), \fBudp\fP(7), \fBunix\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.64 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。