]> git.kernelconcepts.de Git - karo-tx-redboot.git/blobdiff - doc/html/ref/net-common-tcpip-manpages-getsockopt.html
Initial revision
[karo-tx-redboot.git] / doc / html / ref / net-common-tcpip-manpages-getsockopt.html
diff --git a/doc/html/ref/net-common-tcpip-manpages-getsockopt.html b/doc/html/ref/net-common-tcpip-manpages-getsockopt.html
new file mode 100644 (file)
index 0000000..4f4c65d
--- /dev/null
@@ -0,0 +1,344 @@
+<!-- Copyright (C) 2003 Red Hat, Inc.                                -->
+<!-- This material may be distributed only subject to the terms      -->
+<!-- and conditions set forth in the Open Publication License, v1.0  -->
+<!-- or later (the latest version is presently available at          -->
+<!-- http://www.opencontent.org/openpub/).                           -->
+<!-- Distribution of the work or derivative of the work in any       -->
+<!-- standard (paper) book form is prohibited unless prior           -->
+<!-- permission is obtained from the copyright holder.               -->
+<HTML
+><HEAD
+><TITLE
+>getsockopt</TITLE
+><meta name="MSSmartTagsPreventParsing" content="TRUE">
+<META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="eCos Reference Manual"
+HREF="ecos-ref.html"><LINK
+REL="UP"
+TITLE="TCP/IP Library Reference"
+HREF="tcpip-library-reference.html"><LINK
+REL="PREVIOUS"
+TITLE="getsockname"
+HREF="net-common-tcpip-manpages-getsockname.html"><LINK
+REL="NEXT"
+TITLE="ioctl"
+HREF="net-common-tcpip-manpages-ioctl.html"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>eCos Reference Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="net-common-tcpip-manpages-getsockname.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+>Chapter 38. TCP/IP Library Reference</TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="net-common-tcpip-manpages-ioctl.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="NET-COMMON-TCPIP-MANPAGES-GETSOCKOPT">getsockopt</H1
+><TABLE
+BORDER="5"
+BGCOLOR="#E0E0F0"
+WIDTH="70%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>GETSOCKOPT(2)                 System Calls Manual                GETSOCKOPT(2)
+
+NAME
+     getsockopt, setsockopt - get and set options on sockets
+
+SYNOPSIS
+     #include &lt;sys/types.h&#62;
+     #include &lt;sys/socket.h&#62;
+
+     int
+     getsockopt(int s, int level, int optname, void *optval,
+             socklen_t *optlen);
+
+     int
+     setsockopt(int s, int level, int optname, const void *optval,
+             socklen_t optlen);
+
+DESCRIPTION
+     getsockopt() and setsockopt() manipulate the options associated with a
+     socket.  Options may exist at multiple protocol levels; they are always
+     present at the uppermost ``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, level is specified as SOL_SOCKET.  To manipulate
+     options at any other level the protocol number of the appropriate proto-
+     col controlling the option is supplied.  For example, to indicate that an
+     option is to be interpreted by the TCP protocol, level should be set to
+     the protocol number of TCP; see getprotoent(3).
+
+     The parameters optval and optlen are used to access option values for
+     setsockopt().  For getsockopt() they identify a buffer in which the value
+     for the requested option(s) are to be returned.  For getsockopt(), 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.
+
+     optname and any specified options are passed uninterpreted to the appro-
+     priate protocol module for interpretation.  The include file
+     &lt;sys/socket.h&#62; 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 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.  SO_LINGER uses a struct
+     linger parameter, defined in &lt;sys/socket.h&#62;, which specifies the desired
+     state of the option and the linger interval (see below).  SO_SNDTIMEO and
+     SO_RCVTIMEO use a struct timeval parameter, defined in &lt;sys/time.h&#62;.
+
+     The following options are recognized at the socket level.  Except as
+     noted, each may be examined with getsockopt() and set with setsockopt().
+
+           SO_DEBUG        enables recording of debugging information
+           SO_REUSEADDR    enables local address reuse
+           SO_REUSEPORT    enables duplicate address and port bindings
+           SO_KEEPALIVE    enables keep connections alive
+           SO_DONTROUTE    enables routing bypass for outgoing messages
+           SO_LINGER       linger on close if data present
+           SO_BROADCAST    enables permission to transmit broadcast messages
+           SO_OOBINLINE    enables reception of out-of-band data in band
+           SO_SNDBUF       set buffer size for output
+           SO_RCVBUF       set buffer size for input
+           SO_SNDLOWAT     set minimum count for output
+           SO_RCVLOWAT     set minimum count for input
+           SO_SNDTIMEO     set timeout value for output
+           SO_RCVTIMEO     set timeout value for input
+           SO_TYPE         get the type of the socket (get only)
+           SO_ERROR        get and clear error on the socket (get only)
+
+     SO_DEBUG enables debugging in the underlying protocol modules.
+     SO_REUSEADDR indicates that the rules used in validating addresses sup-
+     plied in a bind(2) call should allow reuse of local addresses.
+     SO_REUSEPORT allows completely duplicate bindings by multiple processes
+     if they all set SO_REUSEPORT before binding the port.  This option per-
+     mits multiple instances of a program to each receive UDP/IP multicast or
+     broadcast datagrams destined for the bound port.  SO_KEEPALIVE enables
+     the periodic transmission of messages on a connected socket.  Should the
+     connected party fail to respond to these messages, the connection is con-
+     sidered broken and processes using the socket are notified via a SIGPIPE
+     signal when attempting to send data.  SO_DONTROUTE indicates that outgo-
+     ing messages should bypass the standard routing facilities.  Instead,
+     messages are directed to the appropriate network interface according to
+     the network portion of the destination address.
+
+     SO_LINGER controls the action taken when unsent messages are queued on
+     socket and a close(2) is performed.  If the socket promises reliable
+     delivery of data and SO_LINGER is set, the system will block the process
+     on the close(2) attempt until it is able to transmit the data or until it
+     decides it is unable to deliver the information (a timeout period mea-
+     sured in seconds, termed the linger interval, is specified in the
+     setsockopt() call when SO_LINGER is requested).  If SO_LINGER is disabled
+     and a close(2) is issued, the system will process the close in a manner
+     that allows the process to continue as quickly as possible.
+
+     The option SO_BROADCAST requests permission to send broadcast datagrams
+     on the socket.  Broadcast was a privileged operation in earlier versions
+     of the system.  With protocols that support out-of-band data, the
+     SO_OOBINLINE option requests that out-of-band data be placed in the nor-
+     mal data input queue as received; it will then be accessible with recv(2)
+     or read(2) calls without the MSG_OOB flag.  Some protocols always behave
+     as if this option is set.  SO_SNDBUF and SO_RCVBUF are options to adjust
+     the normal buffer sizes allocated for output and input buffers, respec-
+     tively.  The buffer size may be increased for high-volume connections, or
+     may be decreased to limit the possible backlog of incoming data.  The
+     system places an absolute limit on these values.
+
+     SO_SNDLOWAT is an option to set the minimum count for output operations.
+     Most output operations process all of the data supplied by the call,
+     delivering data to the protocol for transmission and blocking as neces-
+     sary for flow control.  Nonblocking output operations will process as
+     much data as permitted subject to flow control without blocking, but will
+     process no data if flow control does not allow the smaller of the low
+     water mark value or the entire request to be processed.  A select(2) or
+     poll(2) operation testing the ability to write to a socket will return
+     true only if the low water mark amount could be processed.  The default
+     value for SO_SNDLOWAT is set to a convenient size for network efficiency,
+     often 1024.  SO_RCVLOWAT is an option to set the minimum count for input
+     operations.  In general, receive calls will block until any (non-zero)
+     amount of data is received, then return with the smaller of the amount
+     available or the amount requested.  The default value for SO_RCVLOWAT is
+     1.  If SO_RCVLOWAT is set to a larger value, blocking receive calls nor-
+     mally wait until they have received the smaller of the low water mark
+     value or the requested amount.  Receive calls may still return less than
+     the low water mark if an error occurs, a signal is caught, or the type of
+     data next in the receive queue is different than that returned.
+
+     SO_SNDTIMEO is an option to set a timeout value for output operations.
+     It accepts a struct timeval parameter with the number of seconds and
+     microseconds used to limit waits for output operations to complete.  If a
+     send operation has blocked for this much time, it returns with a partial
+     count or with the error EWOULDBLOCK if no data was sent.  In the current
+     implementation, this timer is restarted each time additional data are
+     delivered to the protocol, implying that the limit applies to output por-
+     tions ranging in size from the low water mark to the high water mark for
+     output.  SO_RCVTIMEO is an option to set a timeout value for input opera-
+     tions.  It accepts a struct timeval parameter with the number of seconds
+     and microseconds used to limit waits for input operations to complete.
+     In the current implementation, this timer is restarted each time addi-
+     tional data are received by the protocol, and thus the limit is in effect
+     an inactivity timer.  If a receive operation has been blocked for this
+     much time without receiving additional data, it returns with a short
+     count or with the error EWOULDBLOCK if no data were received.
+
+     Finally, SO_TYPE and SO_ERROR are options used only with getsockopt().
+     SO_TYPE returns the type of the socket, such as SOCK_STREAM; it is useful
+     for servers that inherit sockets on startup.  SO_ERROR returns any pend-
+     ing error on the socket and clears the error status.  It may be used to
+     check for asynchronous errors on connected datagram sockets or for other
+     asynchronous errors.
+
+RETURN VALUES
+     A 0 is returned if the call succeeds, -1 if it fails.
+
+ERRORS
+     The call succeeds unless:
+
+     [EBADF]            The argument s is not a valid descriptor.
+
+     [ENOTSOCK]         The argument s is a file, not a socket.
+
+     [ENOPROTOOPT]      The option is unknown at the level indicated.
+
+     [EFAULT]           The address pointed to by optval is not in a valid
+                        part of the process address space.  For getsockopt(),
+                        this error may also be returned if optlen is not in a
+                        valid part of the process address space.
+
+SEE ALSO
+     connect(2), ioctl(2), poll(2), select(2), poll(2), socket(2),
+     getprotoent(3), protocols(5)
+
+BUGS
+     Several of the socket options should be handled at lower levels of the
+     system.
+
+HISTORY
+     The getsockopt() system call appeared in 4.2BSD.
+
+BSD                            February 15, 1999                           BSD
+    </PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="net-common-tcpip-manpages-getsockname.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="ecos-ref.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="net-common-tcpip-manpages-ioctl.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>getsockname</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="tcpip-library-reference.html"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>ioctl</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file