bionic (2) getsockopt.2.gz

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)