Unix/Linux Go Back    


Linux 2.6 - man page for setsockopt (linux section 3posix)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


SETSOCKOPT(P)			    POSIX Programmer's Manual			    SETSOCKOPT(P)

NAME
       setsockopt - set the socket options

SYNOPSIS
       #include <sys/socket.h>

       int setsockopt(int socket, int level, int option_name,
	      const void *option_value, socklen_t option_len);

DESCRIPTION
       The  setsockopt()  function shall set the option specified by the option_name argument, at
       the protocol level specified by the level  argument,  to  the  value  pointed  to  by  the
       option_value  argument for the socket associated with the file descriptor specified by the
       socket argument.

       The level argument specifies the protocol level	at  which  the	option	resides.  To  set
       options	at  the socket level, specify the level argument as SOL_SOCKET. To set options at
       other levels, supply the appropriate level identifier for  the  protocol  controlling  the
       option.	For example, to indicate that an option is interpreted by the TCP (Transport Con-
       trol Protocol), set level to IPPROTO_TCP as defined in the <netinet/in.h> header.

       The option_name argument specifies a single option to set. The  option_name  argument  and
       any  specified  options	are  passed  uninterpreted to the appropriate protocol module for
       interpretations.  The <sys/socket.h> header defines the socket-level options.  The options
       are as follows:

       SO_DEBUG
	      Turns on recording of debugging information. This option enables or disables debug-
	      ging in the underlying protocol modules. This option takes an int value. This is	a
	      Boolean option.

       SO_BROADCAST
	      Permits  sending	of broadcast messages, if this is supported by the protocol. This
	      option takes an int value. This is a Boolean option.

       SO_REUSEADDR
	      Specifies that the rules used in validating addresses  supplied  to  bind()  should
	      allow  reuse of local addresses, if this is supported by the protocol.  This option
	      takes an int value. This is a Boolean option.

       SO_KEEPALIVE
	      Keeps connections active by enabling the periodic transmission of messages, if this
	      is supported by the protocol. This option takes an int value.

       If  the	connected socket fails to respond to these messages, the connection is broken and
       threads writing to that socket are notified with a  SIGPIPE  signal.  This  is  a  Boolean
       option.

       SO_LINGER
	      Lingers on a close() if data is present. This option controls the action taken when
	      unsent messages queue on a socket and close() is performed.  If SO_LINGER  is  set,
	      the system shall block the process during close() until it can transmit the data or
	      until the time expires. If SO_LINGER is not specified, and close() is  issued,  the
	      system  handles the call in a way that allows the process to continue as quickly as
	      possible. This option takes a linger structure, as defined  in  the  <sys/socket.h>
	      header, to specify the state of the option and linger interval.

       SO_OOBINLINE
	      Leaves  received out-of-band data (data marked urgent) inline. This option takes an
	      int value. This is a Boolean option.

       SO_SNDBUF
	      Sets send buffer size. This option takes an int value.

       SO_RCVBUF
	      Sets receive buffer size. This option takes an int value.

       SO_DONTROUTE
	      Requests that outgoing messages bypass the standard routing facilities.  The desti-
	      nation  shall  be on a directly-connected network, and messages are directed to the
	      appropriate network interface according to the destination address. The effect,  if
	      any,  of	this  option depends on what protocol is in use. This option takes an int
	      value. This is a Boolean option.

       SO_RCVLOWAT
	      Sets the minimum number of bytes to  process  for  socket  input	operations.   The
	      default value for SO_RCVLOWAT is 1. If SO_RCVLOWAT is set to a larger value, block-
	      ing receive calls normally wait until they have received the  smaller  of  the  low
	      water  mark value or the requested amount. (They may 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 from that returned; for example, out-of-band data.) This
	      option takes an int value.  Note that not all implementations allow this option  to
	      be set.

       SO_RCVTIMEO
	      Sets  the timeout value that specifies the maximum amount of time an input function
	      waits until it completes. It accepts a timeval structure with the number of seconds
	      and microseconds specifying the limit on how long to wait for an input operation to
	      complete. If a receive operation has blocked for this much time  without	receiving
	      additional  data,  it shall return with a partial count or errno set to [EAGAIN] or
	      [EWOULDBLOCK] if no data is received. The default for this option  is  zero,  which
	      indicates  that a receive operation shall not time out. This option takes a timeval
	      structure. Note that not all implementations allow this option to be set.

       SO_SNDLOWAT
	      Sets the minimum number of bytes to process for  socket  output  operations.   Non-
	      blocking output operations shall process no data if flow control does not allow the
	      smaller of the send low water mark value or the entire  request  to  be  processed.
	      This option takes an int value. Note that not all implementations allow this option
	      to be set.

       SO_SNDTIMEO
	      Sets the timeout value specifying the amount of time that an output function blocks
	      because flow control prevents data from being sent. If a send operation has blocked
	      for this time, it shall return with a partial count or with errno set  to  [EAGAIN]
	      or  [EWOULDBLOCK]  if  no  data is sent. The default for this option is zero, which
	      indicates that a send operation shall not time out. This option  stores  a  timeval
	      structure. Note that not all implementations allow this option to be set.

       For  Boolean  options,  0  indicates  that the option is disabled and 1 indicates that the
       option is enabled.

       Options at other protocol levels vary in format and name.

RETURN VALUE
       Upon successful completion, setsockopt() shall return 0. Otherwise, -1 shall  be  returned
       and errno set to indicate the error.

ERRORS
       The setsockopt() function shall fail if:

       EBADF  The socket argument is not a valid file descriptor.

       EDOM   The  send  and receive timeout values are too big to fit into the timeout fields in
	      the socket structure.

       EINVAL The specified option is invalid at the specified socket level  or  the  socket  has
	      been shut down.

       EISCONN
	      The  socket  is  already	connected, and a specified option cannot be set while the
	      socket is connected.

       ENOPROTOOPT

	      The option is not supported by the protocol.

       ENOTSOCK
	      The socket argument does not refer to a socket.

       The setsockopt() function may fail if:

       ENOMEM There was insufficient memory available for the operation to complete.

       ENOBUFS
	      Insufficient resources are available in the system to complete the call.

       The following sections are informative.

EXAMPLES
       None.

APPLICATION USAGE
       The setsockopt() function provides an application program with the means to control socket
       behavior.  An  application  program can use setsockopt() to allocate buffer space, control
       timeouts, or permit socket data broadcasts. The <sys/socket.h> header defines the  socket-
       level options available to setsockopt().

       Options	may  exist at multiple protocol levels. The SO_ options are always present at the
       uppermost socket level.

RATIONALE
       None.

FUTURE DIRECTIONS
       None.

SEE ALSO
       Sockets , bind() , endprotoent() , getsockopt() , socket() , the Base  Definitions  volume
       of IEEE Std 1003.1-2001, <netinet/in.h>, <sys/socket.h>

COPYRIGHT
       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2003 Edition, Standard for Information Technology  --  Portable	Operating  System
       Interface  (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
       the Institute of Electrical and Electronics Engineers, Inc and  The  Open  Group.  In  the
       event  of  any  discrepancy  between this version and the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group Standard is the referee document. The orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group			       2003				    SETSOCKOPT(P)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 05:32 PM.