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