table of contents
other languages
other sections
BIND(2) | Manual do Programador Linux | BIND(2) |
NOME¶
bind - associa um nome a um soqueteSINOPSE¶
#include <sys/types.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 “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)).
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¶
accept(2), connect(2), listen(2), socket(2), getsockname(2), ip(7), socket(7)TRADUZIDO POR LDP-BR em 21/08/2000.¶
Marcelo D. Beckmann <marcelobeckmann@yahoo.com> (tradução) Fábio Henrique F. Silva <fabiohfs@mail.com> (revisão)3 Outubro 1998 | Linux 2.2 |