Provided by: manpages-pt-dev_20040726-4_all bug

NOME

       bind - associa um nome a um soquete

SINOPSE

       #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)