getsockopt(2)getsockopt(2)Name
getsockopt, setsockopt - get or set options on sockets
Syntax
#include <sys/types.h>
#include <sys/socket.h>
getsockopt(s, level, optname, optval, optlen)
int s, level, optname;
char *optval;
int *optlen;
setsockopt(s, level, optname, optval, optlen)
int s, level, optname;
char *optval;
int optlen;
Description
The and system calls manipulate options associated with a socket.
Options can exist at multiple protocol levels; they are always present
at the uppermost socket 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 pro‐
tocol controlling the option must be supplied. For example, to indi‐
cate an option is to be interpreted by the TCP protocol, level should
be set to the protocol number of TCP. For further information, see
The parameters optval and optlen are used to access option values for
For they identify a buffer in which the values for the requested
options are to be returned. For 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 can be sup‐
plied as 0.
The optname parameter and any specified options are passed uninter‐
preted to the appropriate protocol module for interpretation. The
include file <sys/socket.h> contains definitions for socket level
options. For further information, see Options at other protocol levels
vary in format and name. Consult the or reference pages for details.
Return Values
A zero is returned if the call succeeds, and -1 is returned if it
fails.
Diagnostics
The call fails under the following conditions:
[EBADF] The argument s is not a valid descriptor.
[ENOTSOCK] The argument s is a file, not a socket.
[ENOPROTOOPT] The option is unknown.
[EFAULT] The address pointed to by optval is not in a valid part
of the process address space. For this error can also
be returned if optlen is not in a valid part of the
process address space.
See Alsofcntl(2), socket(2), getprotoent(3n), Guide to the Data Link Interface
getsockopt(2)