Penguin
Blame: getsockopt(2)
EditPageHistoryDiffInfoLikePages
Annotated edit history of getsockopt(2) version 2, including all changes. View license author blame.
Rev Author # Line
1 perry 1 !!NAME
2 PerryLorier 2 getsockopt - get options on sockets
1 perry 3
4 !!SYNOPSIS
5
2 PerryLorier 6 __#include <sys/types.h>__
7 __#include <sys/socket.h>__
1 perry 8
2 PerryLorier 9 __int getsockopt(int__ ''s''__, int__ ''level''__, int__ ''optname''__, void *__''optval''__, socklen_t *__''optlen''__);__
1 perry 10
11 !!DESCRIPTION
2 PerryLorier 12 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.
1 perry 13
2 PerryLorier 14 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__
15 protocol, ''level'' should be set to the protocol number of __TCP__; see getprotoent(3).
1 perry 16
2 PerryLorier 17 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__.
1 perry 18
2 PerryLorier 19 ''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.
1 perry 20
2 PerryLorier 21 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.
1 perry 22
2 PerryLorier 23 For a description of the available socket options see socket(7) and the appropriate protocol man pages.
1 perry 24
25 !!RETURN VALUE
2 PerryLorier 26 On success, zero is returned. On error, -1 is returned, and ''errno'' is set appropriately.
1 perry 27
28 !!ERRORS
2 PerryLorier 29 ;[EBADF]: The argument ''s'' is not a valid descriptor.
30 ;[ENOTSOCK]: The argument ''s'' is a file, not a socket.
31 ;[ENOPROTOOPT]: The option is unknown at the level indicated.
32 ;[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.
1 perry 33
34 !!CONFORMING TO
2 PerryLorier 35 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
1 perry 36
37 !!NOTE
2 PerryLorier 38 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).
1 perry 39
40 !!BUGS
41
2 PerryLorier 42 Several of the socket options should be handled at lower levels of the system.
1 perry 43
44 !!SEE ALSO
2 PerryLorier 45 ioctl(2), socket(2), getprotoent(3), protocols(5), socket(7), unix(7), tcp(7)
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.

PHP Warning

lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 9 times)