setsockopt - phpMan

Command: man perldoc info search(apropos)  


GETSOCKOPT(2)              Linux Programmer’s Manual             GETSOCKOPT(2)



NAME
       getsockopt, setsockopt - get and set options on sockets

SYNOPSIS
       #include <sys/types.h>
       #include <sys/socket.h>


       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 protocol controlling the option is supplied.  For exam-
       ple, 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 appropriate  pro-
       tocol  module for interpretation.  The include file <sys/socket.h> contains defini-
       tions 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 man-
       ual.

       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.


       For a description of the available socket options see socket(7) and the appropriate
       protocol man pages.


RETURN VALUE
       On success, zero is returned.  On error, -1 is returned, and errno is set appropri-
       ately.

ERRORS
       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.

       EINVAL optlen invalid in setsockopt

CONFORMING TO
       SVr4, 4.4BSD (these system calls first appeared in 4.2BSD).  SVr4  documents  addi-
       tional  ENOMEM  and  ENOSR  error  codes,  but  does  not document the SO_SNDLOWAT,
       SO_RCVLOWAT, SO_SNDTIMEO, SO_RCVTIMEO options

NOTE
       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).

BUGS
       Several of the socket options should be handled at lower levels of the system.

SEE ALSO
       ioctl(2), socket(2), getprotoent(3), protocols(5), socket(7), unix(7), tcp(7)



Linux Man Page                    1999-05-24                     GETSOCKOPT(2)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache/1.3.41 (Unix) PHP/5.2.5 mod_perl/1.30 mod_gzip/1.3.26.1a
Under GNU General Public License
2008-11-23 23:39 @38.103.63.58 CrawledBy CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!