16.12.1 Socket Option Functions

Here are the functions for examining and modifying socket options. They are declared in sys/socket.h.

Function: int getsockopt (int socket, int level, int optname, void *optval, socklen_t *optlen-ptr)

Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

The getsockopt function gets information about the value of option optname at level level for socket socket.

The option value is stored in the buffer that optval points to. Before the call, you should supply in *optlen-ptr the size of this buffer; on return, it contains the number of bytes of information actually stored in the buffer.

Most options interpret the optval buffer as a single int value.

The actual return value of getsockopt is 0 on success and -1 on failure. The following errno error conditions are defined:

EBADF

The socket argument is not a valid file descriptor.

ENOTSOCK

The descriptor socket is not a socket.

ENOPROTOOPT

The optname doesn’t make sense for the given level.

Function: int setsockopt (int socket, int level, int optname, const void *optval, socklen_t optlen)

Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.

This function is used to set the socket option optname at level level for socket socket. The value of the option is passed in the buffer optval of size optlen.