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

NOMBRE

        getsockopt,  setsockopt  - obtiene y pone opciones en conectores (sock‐
        ets)
 

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  get     
        sockopt,  lonopc  es un parámetro por referencia, que contiene inicial‐
        mente 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  proto‐
        colo  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  desha‐
        bilitada.
 
        Para  una  descripción  de las opciones disponibles para conectores vea
        socket(7) y las páginas de manual del protocolo apropiado.
        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.
        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_RCV     
        TIMEO
 

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.
        ioctl(2), socket(2), getprotoent(3), protocols(5), socket(7),  unix(7),
        tcp(7)