summaryrefslogtreecommitdiffstats
path: root/man2/getsockopt.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/getsockopt.2')
-rw-r--r--man2/getsockopt.2181
1 files changed, 181 insertions, 0 deletions
diff --git a/man2/getsockopt.2 b/man2/getsockopt.2
new file mode 100644
index 000000000..f673fa7d0
--- /dev/null
+++ b/man2/getsockopt.2
@@ -0,0 +1,181 @@
+.\" Copyright (c) 1983, 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $Id: getsockopt.2,v 1.1 1999/05/24 14:57:04 freitag Exp $
+.\"
+.\" Modified Sat Jul 24 16:19:32 1993 by Rik Faith (faith@cs.unc.edu)
+.\" Modified Mon Apr 22 02:29:06 1996 by Martin Schulze (joey@infodrom.north.de)
+.\" Modified Tue Aug 27 10:52:51 1996 by Andries Brouwer (aeb@cwi.nl)
+.\" Modified Thu Jan 23 13:29:34 1997 by Andries Brouwer (aeb@cwi.nl)
+.\" Modified Sun Mar 28 21:26:46 1999 by Andries Brouwer (aeb@cwi.nl)
+.\" Modified 1999 by Andi Kleen <ak@muc.de>. Removed most stuff because it is in socket.7
+.\" now.
+.\"
+.TH GETSOCKOPT 2 1999-05-24 "Linux Man Page" "Linux Programmer's Manual"
+.SH NAME
+getsockopt, setsockopt \- get and set options on sockets
+.SH SYNOPSIS
+.B #include <sys/types.h>
+.br
+.B #include <sys/socket.h>
+.sp 2
+.BI "int getsockopt(int " s ", int " level ", int " optname ,
+.BI "void *" optval ", socklen_t *" optlen );
+.sp
+.BI "int setsockopt(int " s ", int " level ", int " optname ,
+.BI "const void *" optval ", socklen_t " optlen );
+.SH DESCRIPTION
+.B Getsockopt
+and
+.B setsockopt
+manipulate the
+.I options
+associated with a socket. Options may exist at multiple
+protocol levels; they are always present at the uppermost
+.B socket
+level.
+
+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,
+.I level
+is specified as
+.BR 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
+.B TCP
+protocol,
+.I level
+should be set to the protocol number of
+.BR TCP ;
+see
+.BR getprotoent (3).
+
+The parameters
+.I optval
+and
+.I optlen
+are used to access option values for
+.BR setsockopt .
+For
+.B getsockopt
+they identify a buffer in which the value for the
+requested option(s) are to be returned. For
+.BR getsockopt ,
+.I optlen
+is a value-result parameter, initially containing the
+size of the buffer pointed to by
+.IR optval ,
+and modified on return to indicate the actual size of
+the value returned. If no option value is
+to be supplied or returned,
+.I optval
+may be NULL.
+
+.I Optname
+and any specified options are passed uninterpreted to the appropriate
+protocol module for interpretation. The include file
+.I <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.
+
+Most socket-level options utilize an
+.I int
+parameter for
+.IR optval .
+For
+.BR setsockopt ,
+the parameter should be non-zero to enable a boolean option, or zero if the
+option is to be disabled.
+
+.PP
+For a description of the available socket options see
+.BR socket (7)
+and the appropriate protocol man pages.
+
+.SH "RETURN VALUE"
+On success, zero is returned. On error, \-1 is returned, and
+.I errno
+is set appropriately.
+.SH ERRORS
+.TP 10
+.B EBADF
+The argument
+.I s
+is not a valid descriptor.
+.TP
+.B EFAULT
+The address pointed to by
+.I optval
+is not in a valid part of the process address space. For
+.BR getsockopt ,
+this error may also be returned if
+.I optlen
+is not in a valid part of the process address space.
+.TP
+.B EINVAL
+.I optlen
+invalid in setsockopt
+.TP
+.B ENOPROTOOPT
+The option is unknown at the level indicated.
+.TP
+.B ENOTSOCK
+The argument
+.I s
+is a file, not a socket.
+.SH "CONFORMING TO"
+SVr4, 4.4BSD (these system calls first appeared in 4.2BSD).
+SVr4 documents additional ENOMEM and ENOSR error codes, but does
+not document the
+.BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO
+options
+.SH NOTE
+The fifth argument of
+.BR 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, also used by glibc.
+See also
+.BR accept (2).
+.SH BUGS
+Several of the socket options should be handled at lower levels of the
+system.
+.SH "SEE ALSO"
+.BR ioctl (2),
+.BR socket (2),
+.BR getprotoent (3),
+.BR protocols (5),
+.BR socket (7),
+.BR tcp (7),
+.BR unix (7)