Scroll to navigation

getsockopt(2) System Calls Manual getsockopt(2)

NOMBRE

getsockopt, setsockopt - obtiene y pone opciones en conectores (sockets)

BIBLIOTECA

Biblioteca Estándar C (libc, -lc)

SINOPSIS

#include <sys/socket.h>
int getsockopt(int sockfd, int level, int optname,
               void optval[restrict *.optlen],
               socklen_t *restrict optlen);
int setsockopt(int sockfd, int level, int optname,
               const void optval[.optlen],
               socklen_t optlen);

DESCRIPCIÓN

getsockopt() y setsockopt() manipulan las opciones del socket al que hace referencia el descriptor de archivo sockfd. Las opciones pueden existir en varios niveles de protocolo; siempre están presentes en el nivel de socket superior.

Al manipular las opciones de socket, se debe definir el nivel en el que reside la opción y su nombre. Para manipular opciones al nivel de la API de sockets, level se define como SOL_SOCKET. Para manipular opciones en cualquier otro nivel, se indica el número del protocolo correspondiente que controla la opción. Por ejemplo, para indicar que una opción debe ser interpretada por el protocolo TCP, level deberá establecerse en el número de protocolo de TCP; consulte getprotoent(3).

Los argumentos optval y optlen sirven para acceder a los valores de las opciones de setsockopt(). En getsockopt(), identifican un búfer que retornará el valor de las opciones solicitadas. Para getsockopt(), optlen es un argumento de valor-resultado que inicialmente contiene el tamaño del búfer al que apunta optval y se modifica al regresar para indicar el tamaño real del valor devuelto. Si no se proporciona ni se devuelve ningún valor, optval puede ser NULL.

Optname 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 optval. 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

En caso de éxito, se devuelve cero en las operaciones estándar. En caso de error, -1, y se define errno al valor correspondiente.

Netfilter permite al programador definir opciones de socket personalizadas con controladores asociados; para estas opciones, el valor de retorno, en caso de éxito, será el valor devuelto por el controlador.

ERRORES

El argumento sockfd no es un descriptor de archivo válido.
La dirección apuntada por optval no está en un sitio válido del espacio de direcciones del proceso. Para getsockopt(), este error puede también ser devuelto si optlen no está en un sitio válido del espacio de direcciones del proceso.
optlen no válido en setsockopt(). En algunos casos, este error también puede ocurrir si el valor de optval no es válido (por ejemplo, para la opción IP_ADD_MEMBERSHIP descrita en ip(7)).
La opción es desconocida al nivel indicado.
El descriptor de archivo sockfd no se refiere a un conector.

ESTÁNDARES

POSIX.1-2008.

HISTORIAL

POSIX.1-2001, SVr4, 4.4BSD (apareció por primera vez en 4.2BSD).

ERRORES

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), ip(7), packet(7), socket(7), tcp(7), udp(7), unix(7)

TRADUCCIÓN

La traducción al español de esta página del manual fue creada por Juan Piernas <piernas@ditec.um.es>, Miguel Pérez Ibars <mpi79470@alu.um.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.

2 Mayo 2024 Páginas de Manual de Linux 6.9.1