BIND(2)            Manuel du programmeur Linux            BIND(2)


NOM
       bind - Fournir un nom à une socket.

SYNOPSIS
       #include <sys/types.h>
       #include <sys/socket.h>

       int  bind(int  sockfd, struct sockaddr *my_addr, socklen_t
       addrlen);

DESCRIPTION
       bind fournit à la socket sockfd, l'adresse locale my_addr.
       my_addr  est  longue de addrlen octets. Traditionnellement
       cette operation est appelée "assignation d'un  nom  à  une
       socket"  (Quand  une socket est créée, par l'appel-système
       socket(2), elle existe dans l'espace des noms mais n'a pas
       de nom assigné).

NOTES
       Assigner  un nom dans le domaine UNIX crée une socket dans
       le système de fichier, qui  devra  être  détruite  par  le
       créateur  une  fois qu'il n'en a plus besoin, en utilisant
       unlink(2).

       Les règles d'assignation de nom varient suivant le domaine
       de  communication.   Consultez  le  manuel  du programmeur
       Linux section 4 pour de plus amples informations.

VALEUR RENVOYÉE
       bind renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas
       errno contient le code d'erreur.

ERREURS
       EBADF   sockfd n'est pas un descripteur valide.

       EACCES  L'adresse  est protégée et l'utilisateur n'est pas
               le Super-User.

       ENOTSOCK
               L'argument est un descripteur de fichier, pas  une
               socket.

       EADDRINUSE
               La socket a déjà une adresse assignée.


       Les  erreurs  suivantes  sont  spécifiques au domaine UNIX
       (AF_UNIX):

       EINVAL  La longueur addr_len  est  fausse,  ou  la  socket
               n'est pas de la famille AF_UNIX.

       EROFS   L'i-noeud  de  la  socket  se  trouverait  dans un
               système de fichiers en lecture seule.



Linux                      18 Mai 1999                          1





BIND(2)            Manuel du programmeur Linux            BIND(2)


       EFAULT  my_addr pointe en  dehors  de  l'espace  d'adresse
               accessible.

       ENAMETOOLONG
               my_addr est trop long

       ENOENT  Le fichier n'existe pas.

       ENOMEM  pas assez de mémoire pour le noyau.

       ENOTDIR Un composant du chemin d'accès n'est pas un réper­
               toire.

       EACCES  L'accès à un composant du chemin d'accès n'est pas
               autorisé.

       ELOOP   my_addr  contient  des  références  circulaires (à
               travers un lien symbolique).

CONFORMITÉ
       SVr4, BSD 4.4 (l'appel  système  bind  apparaît  dans  BSD
       4.2).  SVr4  indique  des  conditions  générales  d'erreur
       supplémentaires EADDRNOTAVAIL, EADDRINUSE, ENOFS,  et  les
       conditions  d'erreurs  spécifiques au domaine Unix en plus
       EIO, EISDIR, EROFS.

NOTE
       Le troisième argument de bind est en fait un int (et c'est
       ce  qu'utilisent  BSD  4.*, libc4 et libc5).  Une certaine
       confusion POSIX résulte du "socklen_t" actuel. Les  propo­
       sitions  de  standard  n'ont pas encore été adoptées, mais
       glibc2 les suit déjà et utilise socklen_t.  Pour  plus  de
       détails voir accept(2).

VOIR AUSSI
       accept(2),   connect(2),  listen(2),  socket(2),  getsock­
       name(2)


TRADUCTION
       Christophe Blaess, 1997.
















Linux                      18 Mai 1999                          2