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ÓN

       Getsockopt  y  setsockopt  manipulan  las  opciones  asociadas a un conector. Éstas pueden
       existir en múltiples niveles de protocolo; siempre están presentes en el nivel más alto de
       conector.

       Al  manipular  opciones  de  conector,  deben  especificarse  el nivel en el que reside la
       opción, 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 número de protocolo del
       apropiado que controle la opción. Por ejemplo, para indicar  que  una  opción  ha  de  ser
       interpretada  por el protocolo TCP, nivel debe ponerse como el número de protocolo de TCP;
       vea getprotoent(3).

       Los parámetros valopc  y  lonopc  se  emplean  para  acceder  a  valores  de  opciones  de
       setsockopt.   Para  getsockopt identifican a un búfer en el que se pondrá el valor para la
       opción pedida (u opciones). Para getsockopt, lonopc es un parámetro  por  referencia,  que
       contiene  inicialmente  el  tamaño  del  búfer   apuntado por optval, y que se modifica al
       acabar la función para contener el  tamaño  real  del  valor  devuelto.  Si  no  se  va  a
       suministrar o devolver un valor de opción, valopc puede ser NULL.

       Nomopc  y  cualesquiera  opciones  especificadas  se  pasan  sin  interpretar al módulo de
       protocolo apropiado para su interpretación. El fichero de cabecera <sys/socket.h> contiene
       definiciones para opciones de nivel de conector, descritas más abajo. Las opciones a otros
       niveles de protocolo varían en formato y nombre; consulte las  páginas  apropiadas  de  la
       sección 4 del Manual.

       La  mayoría de las opciones de nivel-conector utilizan un parámetro int para valopc.  Para
       setsockopt, el parámetro debe ser distinto de cero para permitir una  opción  booleana,  o
       cero si la opción va a ser deshabilitada.

       Para  una  descripción  de  las  opciones  disponibles para conectores vea socket(7) y las
       páginas de manual del protocolo apropiado.

VALOR DEVUELTO

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

ERRORES

       EBADF  El argumento s no es un descriptor válido.

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

       ENOPROTOOPT
              La opción es desconocida al nivel indicado.

       EFAULT La  dirección  apuntada  por  valopc  no  está  en  un  sitio válido del espacio de
              direcciones del proceso. Para getsockopt, este error puede también ser devuelto  si
              lonopc no está en un sitio válido del espacio de direcciones del proceso.

CONFORME A

       SVr4, 4.4BSD (estas primitivas aparecieron por primera vez en 4.2BSD).  SVr4 documenta los
       códigos 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 confusión  en  POSIX  dio  como  resultado  el
       actual  socklen_t.   El  estándar  propuesto todavía no ha sido adoptado pero glibc2 ya lo
       sigue y también tiene socklen_t [*]. Vea también accept(2).

FALLOS

       Algunas de las opciones de conector  deberían  ser  manejadas  a  niveles  más  bajos  del
       sistema.

VÉASE TAMBIÉN

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