getsockopt(2) - Online Manual Page Of Unix/Linux

  Command: man perldoc info search(apropos)

WebSearch:
Our Recommended Sites: Full-Featured Editor
 

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



NAME
       getsockopt, setsockopt - get and set options on sockets

SYNOPSIS
       #include 
       #include 


       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 appro-
       priate protocol 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 num-
       ber 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 protocol
       module for interpretation.  The  include  file    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 param-
       eter  should  be  non-zero to enable a boolean option, or zero if the option is to be dis-
       abled.


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


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

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 additional
       ENOMEM and ENOSR error codes, but does not document the SO_SNDLOWAT, SO_RCVLOWAT,  SO_SND-
       TIMEO, 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)