Provided by: manpages-es_1.55-10_all bug

NOMBRE

       getsockopt,   setsockopt  -  obtiene  y  pone  opciones  en  conectores
       (sockets)

SINOPSIS

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

       int getsockopt(int s, int nivel, int nomopc,  void  *valopc,  socklen_t
       *lonopc);

       int  setsockopt(int  s,  int  nivel,  int  nomopc,  const void *valopc,
       socklen_t lonopc);

DESCRIPCI'ON

       Getsockopt y setsockopt manipulan las opciones asociadas a un conector.
       Estas  pueden  existir en multiples niveles de protocolo; siempre estan
       presentes en el nivel mas alto de conector.

       Al manipular opciones de conector, deben especificarse el nivel  en  el
       que reside la opcion, y su nombre.

       Para  manipular  opciones  en el nivel de conector, nivel se especifica
       como SOL_SOCKET.  Para manipular opciones a cualquier  otro  nivel,  se
       suministra el numero de protocolo del apropiado que controle la opcion.
       Por ejemplo, para indicar que una opcion ha de ser interpretada por  el
       protocolo  TCP,  nivel debe ponerse como el numero de protocolo de TCP;
       vea getprotoent(3).

       Los parametros valopc y lonopc se emplean para  acceder  a  valores  de
       opciones  de  setsockopt.  Para getsockopt identifican a un bufer en el
       que se pondra el  valor  para  la  opcion  pedida  (u  opciones).  Para
       getsockopt,  lonopc  es  un  parametro  por  referencia,  que  contiene
       inicialmente el tamano  del  bufer   apuntado  por  optval,  y  que  se
       modifica  al  acabar  la funcion para contener el tamano real del valor
       devuelto. Si no se va a suministrar o  devolver  un  valor  de  opcion,
       valopc puede ser NULL.

       Nomopc  y  cualesquiera opciones especificadas se pasan sin interpretar
       al modulo de protocolo apropiado para su interpretacion. El fichero  de
       cabecera <sys/socket.h> contiene definiciones para opciones de nivel de
       conector,  descritas  mas  abajo.  Las  opciones  a  otros  niveles  de
       protocolo  varian  en formato y nombre; consulte las paginas apropiadas
       de la seccion 4 del Manual.

       La mayoria de las opciones de nivel-conector utilizan un parametro  int
       para  valopc.   Para setsockopt, el parametro debe ser distinto de cero
       para permitir una opcion booleana,  o  cero  si  la  opcion  va  a  ser
       deshabilitada.

       Para  una  descripcion  de las opciones disponibles para conectores vea
       socket(7) y las paginas de manual del protocolo apropiado.

VALOR DEVUELTO

       Se devuelve cero en caso de exito. En caso de error se  devuelve  -1  y
       errno toma un valor apropiado.

ERRORES

       EBADF  El argumento s no es un descriptor valido.

       ENOTSOCK
              El argumento s es un fichero, no un conector.

       ENOPROTOOPT
              La opcion es desconocida al nivel indicado.

       EFAULT La  direccion apuntada por valopc no esta en un sitio valido del
              espacio de direcciones del proceso. Para getsockopt, este  error
              puede  tambien ser devuelto si lonopc no esta en un sitio valido
              del espacio de direcciones del proceso.

CONFORME A

       SVr4, 4.4BSD (estas primitivas aparecieron por primera vez en  4.2BSD).
       SVr4 documenta los codigos de error adicionales ENOMEM y ENOSR, pero no
       documenta  las  opciones  SO_SNDLOWAT,  SO_RCVLOWAT,   SO_SNDTIMEO   ni
       SO_RCVTIMEO

NOTA

       El quinto argumento de getsockopt y setsockopt es en realidad un entero
       [*] (y esto es lo que tienen BSD 4.*, libc4 y libc5).  Cierta confusion
       en POSIX dio como resultado el actual socklen_t.  El estandar propuesto
       todavia no ha sido adoptado pero glibc2 ya lo  sigue  y  tambien  tiene
       socklen_t [*]. Vea tambien accept(2).

FALLOS

       Algunas  de  las  opciones de conector deberian ser manejadas a niveles
       mas bajos del sistema.

V'EASE TAMBI'EN

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

Pagina man de Linux              24 mayo 1999                    GETSOCKOPT(2)