Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bind(2)

close(2)

endprotoent(3)

getprotobynumber(3)

getprotoent(3)

setprotoent(3)

setsockopt(2)

socket(2)

getsockopt(2)  —  System Calls

OSF

NAME

getsockopt − Gets socket options

SYNOPSIS

#include <sys/types.h> #include <sys/socket.h> int getsockopt (
int socket,
int level,
int option_nam,
char ∗option_value,
int ∗option_len );

PARAMETERS

socketSpecifies the unique socket name. 

levelSpecifies the protocol level at which the option resides. To retrieve options at the socket level, specify the level parameter as SOL_SOCKET.  To retrieve options at other levels, supply the appropriate protocol number for the protocol controlling the option. For example, to indicate that an option will be interpreted by the TCP protocol, set level to the protocol number of TCP, as defined in the netinet/in.h header file, or as determined by using the getprotobyname() function. 

option_namSpecifies a single option to be retrieved.  The socket level options can be enabled or disabled by the setsockopt() function. The getsockopt() function retrieves information about the following options:

SO_DEBUGReports whether debugging information is being recorded.  This option returns an int value. 

SO_ACCEPTCONN
Reports whether socket listening is enabled. This option returns an int value. 

SO_BROADCAST
Reports whether transmission of broadcast messages is supported. This option returns an int value. 

SO_REUSEADDR
Reports whether the rules used in validating addresses supplied by a bind() function should allow reuse of local addresses.  This option returns an int value. 

SO_KEEPALIVE
Reports whether connections are kept active with periodic transmission of messages. If the connected socket fails to respond to these messages, the connection is broken and processes using that socket are notified with a SIGPIPE signal. This option returns an int value. 

SO_DONTROUTE
Reports whether outgoing messages should bypass the standard routing facilities. (Not recommended, for debugging purposes only.) This option returns an int value. 

SO_USELOOPBACK
Only valid for routing sockets. Reports whether the sender receives a copy of each message. This option returns an int value. 

SO_LINGER
Reports whether the socket lingers on a close() function if data is present.  If SO_LINGER is set, the system blocks the process during the close() function until it can transmit the data or until the time expires. If SO_LINGER is not specified, and a close() function is issued, the system handles the call in a way that allows the process to continue as quickly as possible.  This option returns an struct linger value. 

SO_OOBINLINE
Reports whether the socket leaves received out-of-band data (data marked urgent) in line. This option returns an int value. 

SO_SNDBUF
Reports send buffer size information. This option returns an int value. 

SO_RCVBUF
Reports receive buffer size information. This option returns an int value. 

SO_SNDLOWAT
Reports send low-water mark information. This option returns an int value. 

SO_RCVLOWAT
Reports receive low-water mark information. This option returns an int value. 

SO_SNDTIMEO
Reports send time-out information. This option returns a struct timeval value. 

SO_RCVTIMEO
Reports receive time-out information. This option returns a struct timeval value. 

SO_ERRORReports information about error status and clear.  This option returns an int value. 

SO_TYPEReports the socket type.  This option returns an int value. 

Options at other protocol levels vary in format and name.

option_valuePoints to the address of a buffer. 

option_lenSpecifies the length of buffer pointed to by option_value. The option_len parameter initially contains the size of the buffer pointed to by the option_value parameter. On return, the option_len parameter is modified to indicate the actual size of the value returned.  If no option value is supplied or returned, the option_value parameter can be 0 (zero).  Options at other protocol levels vary in format and name.

DESCRIPTION

The getsockopt() function allows an application program to query socket options. The calling program specifies the name of the socket, the name of the option, and a place to store the requested information. The operating system gets the socket option information from its internal data structures and passes the requested information back to the calling program. 

Options may exist at multiple protocol levels. They are always present at the uppermost socket level. When retrieving socket options, specify the level at which the option resides and the name of the option. 

RETURN VALUES

Upon successful completion, the getsockopt() function returns a value of 0 (zero).  Otherwise, a value of -1 is returned, and errno is set to indicate the error. 

ERRORS

If the getsockopt() function fails, errno may be set to one of the following values:

[EBADF]The socket parameter is not valid. 

[ENOTSOCK]
The socket parameter refers to a file, not a socket. 

[ENOPROTOOPT]
The option is unknown.

[EFAULT]The address pointed to by the option_value parameter is not in a valid (writable) part of the process space, or the option_len parameter is not in a valid part of the process address space. 

RELATED INFORMATION

Functions: bind(2), close(2), endprotoent(3), getprotobynumber(3), getprotoent(3), setprotoent(3), setsockopt(2), socket(2)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026