BIND(2)

NOMBRE
bind - enlaza un nombre a un zócalo (socket)

SINOPSIS
#include <sys/types.h>
#include <sys/socket.h>

int bind(int sockfd, struct sockaddr *my_addr, int addrlen);

DESCRIPCIÓN
bind da al zócalo sockfd, la dirección local my_addr. my_addr tiene una longitud de addrlen bytes. Tradicionalmente, esto se conoce como "asignar un nombre a un zócalo" (cuando un interruptor se crea con socket(2), existe en un espacio de nombres (familia de direcciones) pero carece de nombre).

NOTAS
Enlazando un nombre en el dominio UNIX crea un zócalo en el sistema de ficheros que debe ser borrado por el invocador cuando ya no es necesario (usando unlink(2)). Las reglas usadas en el enlace de nombre varia según el dominio de comunicacion. Consultese las entradas en la sección 4 para más información detallada.

VALOR REGRESADO
Cero es el resultado en caso de éxito. En caso de error, -1 es el valor regresado y a errno se le asigna un valor apropiado.

ERRORES

EBADF
    sockfd no es un descriptor válido.

EINVAL
    El zócalo ya está enlazado a una dirección. Esto puede cambiar en el futuro: vease linux/unix/sock.c para más detalles.

EACCES
    La dirección está protegida, y el usuario no es el superusuario.

Los siguientes errores son específicos a los zócalos del dominio UNIX (AF_UNIX):

EINVAL
    La dirección addr_len es incorrecta, o el zócalo no pertenecia a la familia AF_UNIX.

EROFS
    El nodo-i (inode) del zócalo reside en un sistema de ficheros de solo-lectura.

EFAULT
    my_addr señala fuera de su espacio de direcciones accesible.

ENAMETOOLONG
    my_addr es demasiado larga.

ENOENT
    El fichero no existe.

ENOMEM
    No hay suficiente memoria en el kernel disponible.

ENOTDIR
    Un componente en el prefijo del camino (path) no es un directorio.

EACCES
    El permiso de búsqueda ha sido denegado en uno de los componentes del camino.

ELOOP
    my_addr contiene una referencia circular (i.e., via una ligadura simbólica).

HISTORIA
La función bind apareció en BSD 4.2.

VÉASE
accept(2), connect(2), listen(2), socket(2), getsockname(2)