Provided by: manpages-pt-dev_20040726-2_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).
        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 cam‐
               inho.
 
        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 pre‐
        sente 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  Hen‐
        rique F. Silva <fabiohfs@mail.com> (revisão)