SEND(2)            Manuel du programmeur Linux            SEND(2)


NOM
       send, sendto, sendmsg - Envoyer un message sur une socket.

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


       int send(int s, const void *msg, size_t len, int flags)
       int sendto(int s, const void *msg, size_t len, int  flags,       const struct sockaddr *to, socklen_t tolen);

       int sendmsg(int s, const struct msghdr *msg, int flags);

DESCRIPTION
       Send, sendto, et sendmsg permettent de transmettre un mes­
       sage à destination d'une autre socket.  Send ne peut  être
       utilisé  qu'avec les sockets connectée alors que sendto et
       sendmsg peuvent être utilisés tout le temps.

       L'adresse de la cible est donnée par to avec  la  longueur
       tolen.   la longueur du message est indiquée dans len.  Si
       le message est trop long pour être transmis  intégralement
       au   protocole   sous-jacent,   l'erreur   EMSGSIZE   sera
       déclenchée et rien ne sera émis.

       Aucune indication d'échec de  distribution  n'est  fournie
       par  send.   Seules les erreurs locales sont détectées, et
       indiquées par une valeur de retour -1.

       Si la socket ne dispose pas de la place suffisante pour le
       message,  alors send va bloquer, à moins que la socket ait
       été configurée en mode  d'entrées/sorties  non-bloquantes.
       On  peut  utiliser l'appel système select(2) pour vérifier
       s'il est possible d'émettre des données.

       Le paramètre flags peut  contenir  une  ou  plusieurs  des
       options suivantes

       #define   MSG_OOB        0x1  /* Traiter les données hors-bande */
       #define   MSG_DONTROUTE  0x4  /* Contourner le routage           */

       L'option  MSG_OOB  est  utilisée  pour émettre des données
       hors-bande  sur  une  socket  qui  l'autorise  (par  ex  :
       SOCK_STREAM).   Le  protocole  sous-jacent  doit également
       autoriser l'émission de données hors-bande.

       MSG_DONTROUTE est utilisée par les programmes de  diagnos­
       tique ou de routage.

       Voir  recv(2) pour une description de la structure msghdr.





Linux                      18 Mai 1999                          1





SEND(2)            Manuel du programmeur Linux            SEND(2)


VALEUR RENVOYÉE
       Ces appels systèmes  renvoient  le  nombre  de  caractères
       émis,  ou  -1 s'ils échouent, auquel cas errno contient le
       code d'erreur.

ERREURS
       EBADF   Descripteur de socket invalide.

       ENOTSOCK
               L'argument s n'est pas une socket.

       EFAULT  Un  paramètre  pointe  en   dehors   de   l'espace
               d'adresssage accessible.

       EMSGSIZE
               La socket nécessite une emission intégrale du mes­
               sage mais la taille de celui-ci ne le permet  pas.

       EWOULDBLOCK
               La   socket   est   non-bloquante  et  l'opération
               demandée bloquerait.

       EPIPE   L'écriture est impossible (correspondant  absent),
               et  le  signal SIGPIPE a été ignoré par le proces­
               sus.

       ENOMEM  Pas assez de mémoire pour le noyau.

       ENOBUFS La  file  d'émission  de  l'interface  réseau  est
               pleine.  Ceci  indique  généralement  une panne de
               l'interface réseau, mais peut également être dû  à
               un engorgement passager.

CONFORMITÉ
       BSD 4.4 (cet appel système est apparu dans BSD 4.2), SVr4.
       La version SVr4 fournit les conditions d'erreur supplémen­
       taires EINVAL, EINTR, EMSGSIZE, ENOSR, et ENOMEM.  L'appel
       sendmsg est apparu dans le noyau Linux 1.3.16.


NOTE
       Les prototypes founis plus haut suivent les  Spécification
       Single  Unix, tout comme glibc2. L'argument flags était un
       `int' dans BSD 4.*, mais  `unsigned  int'  dans  libc4  et
       libc5.   L'argument  len  était  un  `int' dans BSD 4.* et
       libc4, mais un `size_t' dans libc5; L'argument tolen était
       un  `int'  dans  BSD  4.*, libc4 et libc5.  Voir aussi les
       notes accompagnant la page accept(2).

VOIR AUSSI
       fcntl(2), recv(2),  select(2),  getsockopt(2),  socket(2),
       write(2)





Linux                      18 Mai 1999                          2





SEND(2)            Manuel du programmeur Linux            SEND(2)


TRADUCTION
       Christophe Blaess, 1997.























































Linux                      18 Mai 1999                          3