Provided by: manpages-pt-dev_20040726-1_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)