Differences between version 2 and previous revision of getsockopt(2).
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 2 | Last edited on Tuesday, December 31, 2002 2:17:24 am | by PerryLorier | Revert |
Older page: | version 1 | Last edited on Tuesday, June 4, 2002 12:23:42 am | by perry | Revert |
@@ -1,146 +1,45 @@
-GETSOCKOPT
-!!!GETSOCKOPT
-NAME
-SYNOPSIS
-DESCRIPTION
-RETURN VALUE
-ERRORS
-CONFORMING TO
-NOTE
-BUGS
-SEE ALSO
-----
!!NAME
+getsockopt - get options on sockets
-
-getsockopt, setsockopt - get and set options on sockets
!!SYNOPSIS
+ __#include <sys/types.h>__
+ __#include <sys/socket.h>__
-__#include
__
-#include
__
+
__int getsockopt(int
__ ''s''__, int__ ''level''__, int__ ''optname''__, void *__''optval''__, socklen_t *__''optlen''__);
__
-
-__int getsockopt(int__ ''s''__, int__
-''level''__, int__ ''optname''__, void
-*__''optval''__, socklen_t
-*__''optlen''__);__
-
-
-__int setsockopt(int__ ''s''__, int__
-''level''__, int__ ''optname''__, const void
-*__''optval''__, socklen_t__
-''optlen''__);__
!!DESCRIPTION
+getsockopt(2) returns the ''options'' associated with a socket. Options may exist at multiple protocol levels; they are always present at the uppermost socket(7) level.
+When manipulating socket options the level at which the option resides and the name of the option must be specified. To manipulate options at the socket level, ''level'' is specified as __SOL_SOCKET__. To manipulate options at any other level the protocol number of the appropriate protocol controlling the option is supplied. For example, to indicate that an option is to be interpreted by the __TCP__
+protocol, ''level'' should be set to the protocol number of __TCP__; see getprotoent(3).
-__Getsockopt__
and __setsockopt__ manipulate
the
-
''options
'' associated with
a socket
. Options
may exist
-at multiple protocol levels; they are always present at the
-uppermost
__socket
__ level
.
+The parameters ''optval''
and ''optlen'' identify a buffer in which
the value for the requested option(s) are to be returned.
''optlen
'' is
a value-result parameter, initially containing the size of the buffer pointed to by ''optval'', and modified on return to indicate the actual size of the value returned
. If no option value is to be supplied or returned, ''optval''
may be
__NULL
__.
+''Optname'' and any specified options are passed uninterpreted to the appropriate protocol module for interpretation. The include file ''<sys/socket.h>'' contains definitions for socket level options, described below. Options at other protocol levels vary in format and name; consult the appropriate entries in section 4 of the manual.
-When manipulating
socket options the
level at which the
-option resides and the name of the option must be specified.
-To manipulate
options at the socket level,
''level
'' is
-specified as
__SOL
_SOCKET
__. To manipulate options at any
-other level the protocol number of the appropriate protocol
-controlling
the option is supplied. For example
, to indicate
-that an
option is to be interpreted by the __TCP__
-protocol, ''level'' should be set to the protocol number
-of __TCP__; see getprotoent(3)
.
+Most
socket-
level options utilize an
''int'
' parameter for
''optval''. For
__setsockopt
__,
the parameter should be non-zero to enable a boolean
option, or zero if the
option is to be disabled
.
+For a description of the available socket options see socket(7) and the appropriate protocol man pages.
-The parameters ''optval'' and ''optlen'' are used to
-access option values for __setsockopt__. For
-__getsockopt__ they identify a buffer in which the value
-for the requested option(s) are to be returned. For
-__getsockopt__, ''optlen'' is a value-result
-parameter, initially containing the size of the buffer
-pointed to by ''optval'', and modified on return to
-indicate the actual size of the value returned. If no option
-value is to be supplied or returned, ''optval'' may be
-NULL.
-
-
-''Optname'' and any specified options are passed
-uninterpreted to the appropriate protocol module for
-interpretation. The include file ''''
-contains definitions for socket level options, described
-below. Options at other protocol levels vary in format and
-name; consult the appropriate entries in section 4 of the
-manual.
-
-
-Most socket-level options utilize an ''int'' parameter
-for ''optval''. For __setsockopt__, the parameter
-should be non-zero to enable a boolean option, or zero if
-the option is to be disabled.
-
-
-For a description of the available socket options see
-socket(7) and the appropriate protocol man
-pages.
!!RETURN VALUE
+On success, zero is returned. On error, -1 is returned, and ''errno'' is set appropriately.
-
-On success, zero is returned. On error, -1 is returned, and
-''errno'' is set appropriately.
!!ERRORS
+;[EBADF]: The argument ''s'' is not a valid descriptor.
+;[ENOTSOCK]: The argument ''s'' is a file, not a socket.
+;[ENOPROTOOPT]: The option is unknown at the level indicated.
+;[EFAULT]: The address pointed to by ''optval'' is not in a valid part of the process address space. For getsockopt(2), this error may also be returned if ''optlen'' is not in a valid part of the process address space.
-
-__EBADF__
-
-
-The argument ''s'' is not a valid
-descriptor.
-
-
-__ENOTSOCK__
-
-
-The argument ''s'' is a file, not a socket.
-
-
-__ENOPROTOOPT__
-
-
-The option is unknown at the level indicated.
-
-
-__EFAULT__
-
-
-The address pointed to by ''optval'' is not in a valid
-part of the process address space. For __getsockopt__,
-this error may also be returned if ''optlen'' is not in a
-valid part of the process address space.
!!CONFORMING TO
+SVr4, 4.4BSD (these system calls first appeared in 4.2BSD). SVr4 documents additional [ENOMEM] and [ENOSR] error codes, but does not document the __SO_SNDLOWAT__, __SO_RCVLOWAT__, __SO_SNDTIMEO__, __SO_RCVTIMEO__ options
-
-SVr4, 4.4BSD (these system calls first appeared in 4.2BSD).
-SVr4 documents additional ENOMEM and ENOSR error codes, but
-does not document the __SO_SNDLOWAT__,
-__SO_RCVLOWAT__, __SO_SNDTIMEO__, __SO_RCVTIMEO__
-options
!!NOTE
+The fifth argument of __getsockopt__ and __setsockopt__ is in reality an int [[*] (and this is what BSD 4.* and libc4 and libc5 have). Some POSIX confusion resulted in the present socklen_t. The draft standard has not been adopted yet, but glibc2 already follows it and also has socklen_t [[*]. See also accept(2).
-
-The fifth argument of __getsockopt__ and
-__setsockopt__ is in reality an int [[*] (and this is what
-BSD 4.* and libc4 and libc5 have). Some POSIX confusion
-resulted in the present socklen_t. The draft standard has
-not been adopted yet, but glibc2 already follows it and also
-has socklen_t [[*]. See also accept(2).
!!BUGS
+Several of the socket options should be handled at lower levels of the system.
-Several of the socket options should be handled at lower
-levels of the system.
!!SEE ALSO
-
-
-
ioctl(2), socket(2), getprotoent(3),
-
protocols(5), socket(7), unix(7),
-
tcp(7)
-----
+ioctl(2), socket(2), getprotoent(3), protocols(5), socket(7), unix(7), tcp(7)