Jump to main content

##

# getsockopt Function

## C

    int getsockopt(
        SOCKET s,
        uint32_t level,
        uint32_t option_name,
        uint8_t * option_value,
        uint32_t * option_length
    );

## Description

Various options can be set at the socket level. This function provides compatibility with BSD implementations.

## Preconditions

None.

## Parameters

Parameters | Description
--- | ---
s | Socket descriptor returned from a previous call to socket.
level | On which level the operation is to be performed: - IPPROTO_IP: applies to the IP protocol layer (not yet supported). - IPPROTO_TCP: applies to the TCP protocol layer. - SOL_SOCKET: applies to the socket layer. - IPPROTO_IPV6: applies to the IPv6 protocol layer (not yet supported). - IPPROTO_ICMPV6: applies to the ICMPv6 protocol layer (not yet supported).
option_name | The name of the option to be set: -IPPROTO_TCP -TCP_NODELAY: specifies whether or not the stack should use the Nagle algorithm. - SOL_SOCKET - SO_LINGER: specifies what the stack should do with unsent data on close(). - SO_RCVBUF: specifies the size of the receive buffer (TCP only). - SO_SNDBUF: specifies the size of the transmit buffer.
option_value | For all values of option_name, this is a pointer to the data, which in most cases is an integer. The only exception is SO_LINGER which points to a linger structure.
option_length | The size of the data pointed to by option_value.

## Returns

- 0 - If the function is successful.
- -1 - If the function is unsuccessful.

## Remarks

None.