Path: blob/main/documentation/manual-pages/ja/man2/getsockopt.2
18093 views
.\" Copyright (c) 1983, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" 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.
.\"
.\" @(#)getsockopt.2 8.4 (Berkeley) 5/2/95
.\" %FreeBSD: src/lib/libc/sys/getsockopt.2,v 1.31 2004/07/02 23:52:13 ru Exp %
.\"
.\" $FreeBSD$
.Dd May 2, 1995
.Dt GETSOCKOPT 2
.Os
.Sh ̾��
.Nm getsockopt ,
.Nm setsockopt
.Nd �����åȤΥ��ץ����μ���������
.Sh �饤�֥��
.Lb libc
.Sh ��
.In sys/types.h
.In sys/socket.h
.Ft int
.Fn getsockopt "int s" "int level" "int optname" "void * restrict optval" "socklen_t * restrict optlen"
.Ft int
.Fn setsockopt "int s" "int level" "int optname" "const void *optval" "socklen_t optlen"
.Sh ����
.Fn getsockopt
��
.Fn setsockopt
�����ƥॳ����ϡ������åȤ��б�����
.Em ���ץ����
�����ޤ���
���ץ�����ʣ���Υץ��ȥ����٥��¸�ߤ����ǽ��������ޤ���
������ɬ���Ǿ�̤�
.Dq �����å�
��٥��¸�ߤ��ޤ���
.Pp
�����åȥ��ץ���������ݤϡ����ץ�������٥�
����ӥ��ץ�����̾������ꤹ��ɬ�פ�����ޤ���
�����åȥ�٥�ǥ��ץ���������ˤ�
.Fa level
��
.Dv SOL_SOCKET
�Ȥ��ƻ��ꤷ�ޤ���
¾�Υ�٥�ǥ��ץ���������ˤϡ�
���ץ��������椷�Ƥ���Ŭ�ڤʥץ��ȥ���Υץ��ȥ����ֹ����ꤷ�ޤ���
�㤨�С����ץ����
.Tn TCP
�ץ��ȥ���ˤ�äƲ�ᤵ��뤳�Ȥ�ؼ�����ˤϡ�
.Fa level
��
.Tn TCP
�Υץ��ȥ����ֹ�����ꤹ��ɬ�פ�����ޤ���
.Xr getprotoent 3
�Ȥ��Ƥ���������
.Pp
.Fa optval
��
.Fa optlen
�����ϡ�
.Fn setsockopt
�����ץ�����ͤ˥����������뤿��˻��Ѥ���ޤ���
.Fn getsockopt
�ξ�硢�������ᤵ�줿���ץ������ͤ��֤����
�Хåե����̤��ޤ���
.Fn getsockopt
�ξ�硢
.Fa optlen
���ͤȷ�̤ΰ����Ǥ��ꡢ����ˤ�
.Fa optval
�λؤ��Хåե��Υ����������äƤ��ꡢ�����˽��������
�֤��줿�ͤμºݤΥ��������褦�ˤʤ�ޤ���
���ץ�����ͤ���ꤷ�ʤ������ޤ��ϥ��ץ�����ͤ��֤���ʤ���硢
.Fa optval
�� NULL ����ꤷ�Ƥ⤫�ޤ��ޤ���
.Pp
.Fa optname
��������ӻ���Υ��ץ����ϡ���ᤵ�줺�ˡ�
����Ѥγ����ץ��ȥ���⥸�塼����Ϥ���ޤ���
���롼�ɥե�����
.In sys/socket.h
�ˤϸ�Ҥ��륽���åȥ�٥륪�ץ�����Ѥ���������äƤ��ޤ���
¾�Υץ��ȥ����٥�Υ��ץ����Ϸ�����̾�Τ����ޤ��ޤǤ���
�ޥ˥奢��Υ�������� 4 �γ������륨��ȥ�Ȥ��Ƥ���������
.Pp
�ۤȤ�ɤΥ����åȥ�٥�Υ��ץ�����
.Fa optval
�Ѥ�
.Vt int
��������Ѥ��ޤ���
.Fn setsockopt
�ξ�硢�֡���黻��ͭ���ˤ��뤿��ˤϰ����� 0 �Ǥʤ�ɬ�פ����ꡢ
���ץ�����̵���ˤ������ 0 �Ǥ���ɬ�פ�����ޤ���
.Dv SO_LINGER
�ϡ�
.In sys/socket.h
��������줿
.Vt "struct linger"
��������Ѥ��ޤ���
����ϡ���Ū�ξ��֤Υ��ץ����ȥ�ֳ� (���) ����ꤷ�ޤ���
.Dv SO_SNDTIMEO
��
.Dv SO_RCVTIMEO
�ϡ�
.In sys/time.h
��������줿
.Vt "struct timeval"
��������Ѥ��ޤ���
.Pp
�ʹߤΥ��ץ�������åȥ�٥��ǧ������ޤ���
�̵�������������ơ��ƥ��ץ����
.Fn getsockopt
��Ĵ�٤�졢
.Fn setsockopt
�����ꤵ��ޤ���
.Bl -column SO_ACCEPTFILTER -offset indent
.It Dv SO_DEBUG Ta "�ǥХå�����ε�Ͽ��ͭ���ˤ��ޤ�"
.It Dv SO_REUSEADDR Ta "�������륢�ɥ쥹�κƻ��Ѥ�ͭ���ˤ��ޤ�"
.It Dv SO_REUSEPORT Ta "��ʣ�������ɥ쥹�ȥݡ��ȤΥХ���ɤ�ͭ���ˤ��ޤ�"
.It Dv SO_KEEPALIVE Ta "��³���ݻ����뤳�Ȥ�ͭ���ˤ��ޤ�"
.It Dv SO_DONTROUTE Ta "ȯ����å������ˤĤ��Ʒ�ϩ����Х��ѥ���ͭ���ˤ��ޤ�"
.It Dv SO_LINGER Ta "�ǡ�����¸�ߤ�����ϥ����������ٱ䤷�ޤ�"
.It Dv SO_BROADCAST Ta "�֥����ɥ��㥹�ȥ�å���������������ѡ��ߥå�����ͭ���ˤ��ޤ�"
.It Dv SO_OOBINLINE Ta "�Х����ǤΥХ�ɳ��ǡ����μ�����ͭ���ˤ��ޤ�"
.It Dv SO_SNDBUF Ta "�����ѤΥХåե������������ꤷ�ޤ�"
.It Dv SO_RCVBUF Ta "�����ѤΥХåե������������ꤷ�ޤ�"
.It Dv SO_SNDLOWAT Ta "�����ѤκǾ�������Ȥ����ꤷ�ޤ�"
.It Dv SO_RCVLOWAT Ta "�����ѤκǾ�������Ȥ����ꤷ�ޤ�"
.It Dv SO_SNDTIMEO Ta "���ϤˤĤ��ƤΥ����ॢ�����ͤ����ꤷ�ޤ�"
.It Dv SO_RCVTIMEO Ta "���ϤˤĤ��ƤΥ����ॢ�����ͤ����ꤷ�ޤ�"
.It Dv SO_ACCEPTFILTER Ta "�Ԥ����������åȤǤ� accept �ե��륿�����ꤷ�ޤ�"
.It Dv SO_TYPE Ta "�����åȤΥ����פ�������ޤ� (�����Τ�)"
.It Dv SO_ERROR Ta "�����åȤΥ��顼��������ƥ��ꥢ���ޤ� (�����Τ�)"
.El
.Pp
.Dv SO_DEBUG
�ϲ��ؤΥץ��ȥ���⥸�塼����ǥǥХå���ͭ���ˤ��ޤ���
.Dv SO_REUSEADDR
�ϡ�
.Xr bind 2
�����ƥॳ����ǻ��ꤵ�줿���ɥ쥹�ڤ���Τ˻��Ѥ��뵬§�ǡ�
�������륢�ɥ쥹�κ����Ѥ���ǽ�Ǥ��뤳�Ȥ��ޤ���
.Dv SO_REUSEPORT
�ϡ��ݡ��Ȥ�Х���ɤ�������ʣ���Υץ����������٤�
.Dv SO_REUSEPORT
�����ꤷ�Ƥ�����ˡ�
ʣ���Υץ������ˤ�봰���˽�ʣ�����Х���ɤ���ǽ�ˤʤ�褦�ˤ��ޤ���
���Υ��ץ����ϡ��ץ�������ʣ���Υ������줾�줬��
�Х���ɤ��줿�ݡ��Ȥ���Ȥ��� UDP/IP �ޥ�����㥹�Ȥޤ���
�֥����ɥ��㥹�ȤΥǡ�������������Ǥ���褦�ˤ��ޤ���
.Dv SO_KEEPALIVE
����³���줿�����åȾ�ǥ�å������μ���Ū��������ͭ���ˤ��ޤ���
��³���줿�����������Υ�å������˱����Ǥ��ʤ�����
��³���˲�����Ƥ���ȹͤ���졢�����åȤ���Ѥ��Ƥ���ץ�������
�ǡ������������褦�Ȥ���Ȥ���
.Dv SIGPIPE
�����ʥ�ˤ�ä����Τ�����ޤ���
.Dv SO_DONTROUTE
��ȯ����å�������ɸ��η�ϩ���굡ǽ��Х��ѥ�����ɬ�פ����뤳�Ȥ��ޤ���
����ˡ���å������ϡ����襢�ɥ쥹�Υͥåȥ����ʬ�˽��ä�
��������ͥåȥ�����ե�������ž������ޤ���
.Pp
.Dv SO_LINGER
����������Ƥ��ʤ���å������������åȤ��Ԥ�����ˤ��ꡢ������
.Xr close 2
���¹Ԥ������˹Ԥ�����֤����椷�ޤ���
�����åȤ��ǡ����ο���Ǥ����ۿ������������
.Dv SO_LINGER
�����ꤵ��Ƥ����硢
�ǡ����������Ǥ���ޤ� �ޤ��Ͼ�����ۿ��Ǥ��ʤ�
(��ֳ֤ȸƤФ�륿���ॢ���Ȼ��֤ϡ�
.Dv SO_LINGER
���ᤵ���Ȥ���
.Fn setsockopt
�����ƥॳ���������ñ�̤ǻ��ꤵ��ޤ�) ��Ƚ�ꤹ��ޤǡ������ƥ�ϥץ�������
.Xr close 2
��ǥ֥��å����ޤ���
.Dv SO_LINGER
��̵���ξ��֤�
.Xr close 2
����ư�����ȡ������ƥ�ϡ��ץ���������ǽ�ʸ¤��®�˽�����
��³�Ǥ�����ˡ�ǥ�������������Ԥ��ޤ���
.Pp
���ץ����
.Dv SO_BROADCAST
�ϡ������åȾ�ǥ֥����ɥ��㥹�ȥǡ�����������������ѡ��ߥå�����
�ᤷ�ޤ���
�֥����ɥ��㥹�Ȥϡ������ƥ�ν���С������Ǥ��ø����Ǥ�����
�Х�ɳ��Υǡ����ݡ��Ȥ���ץ��ȥ���ǡ�
.Dv SO_OOBINLINE
���ץ����ϡ��Х�ɳ��Υǡ������������줿���֤��̾��
�ǡ��������Ԥ���������֤���뤳�Ȥ��ᤷ�ޤ���
�����ơ������
.Dv MSG_OOB
�ե饰�ʤ���
.Xr recv 2
�ƤӽФ��ޤ���
.Xr read 2
�ƤӽФ��ǥ��������Ǥ��ޤ���
��� ���Υ��ץ�������ꤵ��Ƥ��뤫�Τ褦��ư���
�ץ��ȥ���⤢��ޤ���
.Dv SO_SNDBUF
��
.Dv SO_RCVBUF
�ϡ����줾�졢���Ϥ���������Ѥ˳�����Ƥ����̾�ΥХåե���������
Ĵ�����륪�ץ����Ǥ���
�Хåե��Υ������ϡ���ܥ�塼����³�Τ�������ä��뤳�Ȥ��Ǥ��ޤ�����
�忮�ǡ����β�ǽ�ʥХå�������
���¤��뤿��˸��������뤳�Ȥ�Ǥ��ޤ���
�����ƥ�Ϥ������ͤˤĤ��� 1 �Ĥ����к����ͤ����ꤷ�ޤ���
���κ����ͤ�
.Xr sysctl 3
MIB �ѿ�
.Dq Li kern.ipc.maxsockbuf
�ˤ�äƥ��������Ǥ��ޤ���
.Pp
.Dv SO_SNDLOWAT
�Ͻ������˺Ǿ�������Ȥ����ꤹ�륪�ץ����Ǥ���
�ۤȤ�ɤν������ϡ������ѤΥץ��ȥ���˥ǡ������ۿ�����
�ե�������Τ���˥֥��å����ʤ���ƤӽФ��ˤ�ä�Ϳ����줿
���٤ƤΥǡ�����������ޤ���
�Υ�֥��å��������ϡ��֥��å��ʤ��Υե�������˽��ä�
���Ƥ����³��ޤǥǡ�����������ޤ������ե������椬
�������ͤޤ��������ΤΤ����줫����������������뤳�Ȥ���Ƥ��ʤ�
���ϥǡ�����������ޤ���
�����åȤؤν����ǽ�Ϥ�����
.Xr select 2
�������֤�Τϡ��������ͤ�����Ǥ���������Ǥ���
.Dv SO_SNDLOWAT
�Υǥե�����ͤϥͥåȥ����Ψ���Τ����
Ŭ�ڤʥ����� (¿���ξ��� 1024) �����ꤵ��ޤ���
.Dv SO_RCVLOWAT
���������κǾ�������Ȥ����ꤹ�륪�ץ����Ǥ���
���̤ˡ������ƤӽФ��ϡ������餫�� (0 �Ǥʤ�) �ǡ�����
���������ޤǥ֥��å����Ƥ��顢���ѤǤ����̤ޤ���
�ᤵ�줿�̤Τ����줫���ʤ����ȤȤ�����ޤ���
.Dv SO_RCVLOWAT
�Υǥե�����ͤ� 1 �Ǥ���
.Dv SO_RCVLOWAT
�ˤ�ä��礭���ͤ����ꤵ��Ƥ����硢
�����ƤӽФ��Υ֥��å����̾�������ͤޤ���
�ᤵ�줿�̤Τ����줫�������������������ޤ��Ե����ޤ���
�����ƤӽФ��ϡ����顼��ȯ�������ꡢ�����ʥ뤬��館��줿�ꡢ
�ޤ��ϼ����Ԥ�������μ��Υǡ����Υ����פ��֤��줿��ΤȰۤʤ���ϡ�
�������ͤ�꾮�����ͤǤ���뤳�Ȥ�����ޤ���
.Pp
.Dv SO_SNDTIMEO
�Ͻ������ˤĤ��ƥ����ॢ�����ͤ����ꤹ�륪�ץ����Ǥ���
����ϡ�������λ���Ե������¤��뤿��˻��Ѥ�����ÿ���
�ޥ������ÿ���
.Vt "struct timeval"
�����ǻ��ꤷ�ޤ���
���������ꤵ�줿���ְʾ�֥��å����줿��硢��ʬŪ�ʥ�����Ȥ���뤫��
�ޤ��ϥǡ�������������Ƥ��ʤ����ϥ��顼
.Er EWOULDBLOCK
�����ޤ���
���ߤμ����Ǥϡ����Υ����ޤ��ɲäγƥǡ������ץ��ȥ����
�ۿ�����뤿�Ӥ˺Ƶ�ư���졢����ϥ������������Ѥκ������ͤ���
�ǹ����ͤ��ϰϤ˻�������ʬ��Ŭ�Ѥ���뤳�Ȥ��̣���ޤ���
.Dv SO_RCVTIMEO
���������ˤĤ��ƥ����ॢ�����ͤ����ꤹ�륪�ץ����Ǥ���
�����������λ���Ե������¤��뤿��˻��Ѥ�����ÿ����ޥ������ÿ���
.Vt "struct timeval"
�����ǻ��ꤷ�ޤ���
���ߤμ����Ǥϡ����Υ����ޤ��ɲäΥǡ������ץ��ȥ���ˤ�ä�
��������뤿�Ӥ˺Ƶ�ư�����Τǡ�
���¤ϼºݤˤϵٻߴ��֤Υ����ޤȤʤ�ޤ���
�ɲäΥǡ�����������뤳�Ȥʤ���������������λ��֤ˤĤ���
�֥��å����줿��硢û��������Ȥ���뤫��
�ޤ��ϥǡ�������������Ƥ��ʤ����ϥ��顼
.Er EWOULDBLOCK
�����ޤ���
.Pp
.Dv SO_ACCEPTFILTER
�ϡ������åȾ��
.Xr accept_filter 9
���֤��ޤ���
����ˤ�ꡢ�Ԥ��������Ƥ��륹�ȥ�ॽ���åȤ����äƤ�����³��
.Xr accept 2
���Ϥ�������˥ե��륿����뤳�Ȥˤʤ�ޤ���
ǰ�Τ��ᷫ���֤��ޤ���
�ե��륿���åȾ�˥��ȡ��뤹�����ˡ������åȤ��Ф���
.Xr listen 2
�ƤӽФ�ɬ�פ�����ޤ���
�������ʤ���
.Fn setsockopt
�����ƥॳ���뤬���Ԥ��ޤ���
.Bd -literal
struct accept_filter_arg {
char af_name[16];
char af_arg[256-16];
};
.Ed
.Pp
.Fa optval
������
.Fa struct accept_filter_arg
��ؤ��ʤ��ƤϤʤ�ޤ���
������
.Xr accept_filter 9
���������ꤷ�ޤ���
.Fa af_name
�����ϡ����ץꥱ��������Ԥ����������åȾ���֤������ȻפäƤ���
accept �ե��륿��̾�������ʤ��ƤϤʤ�ޤ���
���ץ����ΰ���
.Fa af_arg
�ϡ�
.Fa af_name
�ǻ��ꤵ�줿 accept �ե��륿���Ϥ����Ȥ��Ǥ����ΤǤ���
����ˤ�ꡢ�����åȤ��֤������ˤ���ʤ����ꥪ�ץ�����
���ޤ���
NULL ��
.Fa optval
����Ϥ��ȡ��ե��륿���������ޤ���
.Pp
�Ǹ�ˡ�
.Dv SO_TYPE
��
.Dv SO_ERROR
��
.Fn getsockopt
�Ǥ������Ѥ���륪�ץ����Ǥ���
.Dv SO_TYPE
�Ǥ�
.Dv SOCK_STREAM
�Τ褦�ʥ����åȤΥ����פ��֤�ޤ���
����ϥ������ȥ��å��˥����åȤ�Ѿ�����褦�ʥ����Ф������Ǥ���
.Dv SO_ERROR
�ϥ����åȾ�DZ����Υ��顼���֤������顼���֤ꥢ���ޤ���
�������³���줿�ǡ�������ॽ���åȾ����Ʊ��Ū���顼������å������ꡢ
����¾����Ʊ�����顼������å�����Τ˻��ѤǤ��ޤ���
.Sh �����
.Rv -std
.Sh ���顼
�ƤӽФ��ϼ��ξ������������Ǥ�:
.Bl -tag -width Er
.It Bq Er EBADF
����
.Fa s
��ͭ���ʵ��һҤǤϤ���ޤ���
.It Bq Er ENOTSOCK
����
.Fa s
�������åȤǤϤʤ��ե�����Ǥ���
.It Bq Er ENOPROTOOPT
�ؼ����줿��٥�ǥ��ץ�����¸�ߤ��ޤ���
.It Bq Er EFAULT
.Fa optval
���ؤ����ɥ쥹���ץ��������ɥ쥹���֤�ͭ������ʬ�ˤ���ޤ���
.Fn getsockopt
�Ǥϡ�
.Fa optlen
���ץ��������ɥ쥹���֤�ͭ������ʬ�Ǥʤ����⡢
���Υ��顼���֤�����ǽ��������ޤ���
.It Bq Er EINVAL
�Ԥ������Ƥ��ʤ������åȤ��Ф���
.Xr accept_filter 9
�Υ��ȡ�����ߤޤ�����
.El
.Sh ��Ϣ����
.Xr ioctl 2 ,
.Xr socket 2 ,
.Xr getprotoent 3 ,
.Xr sysctl 3 ,
.Xr protocols 5 ,
.Xr sysctl 8 ,
.Xr accept_filter 9
.Sh �Х�
�����åȥ��ץ����Τ����Ĥ��ϥ����ƥ���㤤��٥�ǽ��������ɬ�פ�����ޤ���
.Sh ���
.Fn getsockopt
�����ƥॳ�����
.Bx 4.2
�ǤϤ�����о줷�ޤ�����