zion -  bind


Nom

bind - Fournir un nom à une socket.

Résumé

#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 opération est appelée "affectation 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é).

Il est normalement nécessaire d'affecter une adresse locale avec bind avant qu'une socket SOCK_STREAM puisse recevoir des connexions (voir accept (2)). Les règles d'affectation de nom varient suivant le domaine de communication. Consultez le manuel Linux section 7 pour de plus amples informations. Pour AF_INET voir ip (7), pour AF_UNIX voir unix (7), pour AF_APPLETALK voir ddp (7), pour AF_PACKET voir packet (7), pour AF_X25 voir x25 (7) et pour AF_NETLINK voir netlink (7).

Valeur renvoyée

L'appel 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.

EINVAL
    La socket possède déjà une adresse. Ceci peut changer dans l'avenir : voir linux/unix/sock.c pour les détails.

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.


Les erreurs suivantes sont spécifiques aux sockets du 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 se trouverait dans un système de fichiers en lecture seule.

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épertoire.

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


Bugs

Les options de proxy transparent ne sont pas décrites.

Conformité

SVr4, BSD 4.4 (l'appel système bind est apparu dans BSD 4.2). SVr4 indique des erreurs générales supplémentaires EADDRNOTAVAIL , EADDRINUSE , et ENOSR, ainsi que les conditions d'erreurs spécifiques au domaine Unix EIO et EISDIR .

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. Voir accept (2).

Voir aussi

accept (2), connect (2), listen (2), socket (2), getsockname (2), ip (7), socket (7).

Traduction

Christophe Blaess, 1996-2003.

Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?