Linux 2.2
manpages-pt-dev
Portuguese Versions of the Manual Pages (dev sections)
manpages-dev
Manual pages about using GNU/Linux for development
man-pages
Linux kernel and C library user-space interface documentation
NOME
bind - associa um nome a um soquete
SINOPSE
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
DESCRIÇÃO
bind dá ao soquete sockfd o endereço local my_addr. my_addr tem addrlen bytes de tamanho. Tradicionalmente, isso é chamado \(lqatribuindo um nome a um soquete.\(rq 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)).
NOTAS
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).
VALOR DE RETORNO
Em caso de sucesso, é retornado zero. Em caso de erro, é retornado -1, e errno é ajustado apropriadamente.
ERROS
EBADF | sockfd não é um descritor válido. |
EINVAL | O soquete já está limitado a um endereço. Isso pode mudar no futuro: veja linux/unix/sock.c para detalhes. |
EACCES | O endereço está protegido, e o usuário não é o super-usuário. |
ENOTSOCK | |
Argumento é um descritor para um arquivo, não um soquete. | |
Os erros a seguir são específicos para soquetes de domínio UNIX (AF_UNIX) : | |
EINVAL | O addrlen está errado, ou o soquete não está na família AF_UNIX |
EROFS | O inode do soquete pode estar residente em um sistema de arquivos somente leitura. |
EFAULT | my_addr aponta para fora de um espaço de endereçamento acessível pelo usuário. |
ENAMETOOLONG | |
my_addr é muito longo. | |
ENOENT | O arquivo não existe. |
ENOMEM | A memória do kernel disponível foi insuficiente. |
ENOTDIR | |
Um componente do prefixo do caminho não é um diretório. | |
EACCES | Permissão de procura negada em um componente do prefixo do caminho. |
ELOOP | Muitas ligações simbólicas foram encontradas resolvendo my_addr. |
BUGS
As opções de proxy transparente não são descritas.
CONFORMIDADE
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.
NOTA
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).
VEJA TAMBÉM
TRADUZIDO POR LDP-BR em 21/08/2000.
Marcelo D. Beckmann <marcelobeckmann> (tradução)
Fábio Henrique F. Silva <fabiohfs> (revisão)
REFERENCED BY
authbind(1), authbind-helper(8), sctp_bindx(3), sctp(7), accept(2), connect(2), getpeername(2), getsockname(2), listen(2), socket(2), socketcall(2), bindresvport(3), getaddrinfo(3), getifaddrs(3), if_nameindex(3), services(5), ddp(7), inotify(7), ip(7), ipv6(7), netlink(7), packet(7), raw(7), sock_diag(7), socket(7), tcp(7), udp(7), unix(7), dircproxy(1), atalk(4), privbind(1), socket(1), tac_plus(8), tcptraceroute.mt(1), msocket(2viewos), vsock(7), tcptraceroute(1), rds(7)