Provided by:
manpages-es_1.55-10_all 
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)