BIND(2) | Manual do Programador Linux | BIND(2) |
bind - associa um nome a um soquete
#include <sys/types.h>
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
bind dá ao soquete sockfd o endereço local my_addr. my_addr tem addrlen bytes de tamanho. Tradicionalmente, isso é chamado “atribuindo um nome a um soquete.” Quando um soquete é criado com socket(2), ele existe no espaço de nomes (familia de endereços) mas não possui um nome atribuído.
É normalmente necessário atribuir um endereço local usando bind para que um soquete SOCK_STREAM possa receber conexões (veja accept(2)).
As regras usadas na associação de nomes variam entre as familias de endereços. Consulte a entrada do manual na Seção 7 para informações detalhadas. Para AF_INET veja ip(7), para AF_UNIX veja unix(7), para AF_APPLETALK veja ddp(7), para AF_PACKET veja packet(7), para AF_X25 veja x25(7) e para AF_NETLINK veja netlink(7).
Em caso de sucesso, é retornado zero. Em caso de erro, é retornado -1, e errno é ajustado apropriadamente.
Os erros a seguir são específicos para soquetes de domínio UNIX (AF_UNIX) :
As opções de proxy transparente não são descritas.
SVr4, 4.4BSD (a função bind apareceu primeiramente no BSD 4.2). SVr4 documenta adicionalmente as condições de erro gerais EADDRNOTAVAIL, EADDRINUSE, e ENOSR, e adicionalmente condições de erro de domínio Unix EIO, EISDIR e EROFS.
O terceiro argumento de bind é na realidade um int (e isso é o que BSD 4.* e libc4 e libc5 usam). Alguma confusão no POSIX resultou no presente socklen_t. O esboço padrão não foi adotado ainda, mas a glibc2 já segue isso e também usa socklen_t. Veja também accept(2).
accept(2), connect(2), listen(2), socket(2), getsockname(2), ip(7), socket(7)
Marcelo D. Beckmann <marcelobeckmann@yahoo.com> (tradução) Fábio Henrique F. Silva <fabiohfs@mail.com> (revisão)
3 Outubro 1998 | Linux 2.2 |