Penguin
Blame: setsockopt(2)
EditPageHistoryDiffInfoLikePages
Annotated edit history of setsockopt(2) version 3, including all changes. View license author blame.
Rev Author # Line
1 perry 1 !!!GETSOCKOPT
2 !!NAME
3
4 getsockopt, setsockopt - get and set options on sockets
5 !!SYNOPSIS
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
2 PerryLorier 11 __int setsockopt(int__ ''s''__, int__ ''level''__, int__ ''optname''__, const void *__''optval''__, socklen_t__ ''optlen''__);__
1 perry 12
13 !!DESCRIPTION
14
15
16 __Getsockopt__ and __setsockopt__ manipulate the
17 ''options'' associated with a socket. Options may exist
18 at multiple protocol levels; they are always present at the
19 uppermost __socket__ level.
20
21
22 When manipulating socket options the level at which the
23 option resides and the name of the option must be specified.
24 To manipulate options at the socket level, ''level'' is
25 specified as __SOL_SOCKET__. To manipulate options at any
26 other level the protocol number of the appropriate protocol
27 controlling the option is supplied. For example, to indicate
28 that an option is to be interpreted by the __TCP__
29 protocol, ''level'' should be set to the protocol number
30 of __TCP__; see getprotoent(3).
31
32
33 The parameters ''optval'' and ''optlen'' are used to
34 access option values for __setsockopt__. For
35 __getsockopt__ they identify a buffer in which the value
36 for the requested option(s) are to be returned. For
37 __getsockopt__, ''optlen'' is a value-result
38 parameter, initially containing the size of the buffer
39 pointed to by ''optval'', and modified on return to
40 indicate the actual size of the value returned. If no option
41 value is to be supplied or returned, ''optval'' may be
42 NULL.
43
44
45 ''Optname'' and any specified options are passed
46 uninterpreted to the appropriate protocol module for
47 interpretation. The include file ''''
48 contains definitions for socket level options, described
49 below. Options at other protocol levels vary in format and
50 name; consult the appropriate entries in section 4 of the
51 manual.
52
53
54 Most socket-level options utilize an ''int'' parameter
55 for ''optval''. For __setsockopt__, the parameter
56 should be non-zero to enable a boolean option, or zero if
57 the option is to be disabled.
58
59
60 For a description of the available socket options see
61 socket(7) and the appropriate protocol man
62 pages.
63 !!RETURN VALUE
64
65 On success, zero is returned. On error, -1 is returned, and
66 ''errno'' is set appropriately.
2 PerryLorier 67
1 perry 68 !!ERRORS
2 PerryLorier 69 ;[EBADF]: The argument ''s'' is not a valid descriptor.
70 ;[ENOTSOCK]: The argument ''s'' is a file, not a socket.
71 ;[ENOPROTOOPT]: The option is unknown at the level indicated.
72 ;[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.
73 ;[EINVAL]: The optlen or the option you are trying to set is invalid.
3 PerryLorier 74 ;[EADDRNOTAVAIL]: The level isn't applicable for this option.
1 perry 75
76 !!CONFORMING TO
2 PerryLorier 77 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 78
79 !!NOTE
2 PerryLorier 80 The fifth argument of getsockopt(2) and setsockopt(2) is in reality an int [[*] (and this is what BSD 4.* and libc4 and libc5 have). Some [POSIX] confusion
81 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 82
83 !!BUGS
2 PerryLorier 84 Several of the socket options should be handled at lower levels of the system.
1 perry 85
86 !!SEE ALSO
2 PerryLorier 87 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)