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)

Página man de Linux                               24 mayo 1999                                     GETSOCKOPT(2)