Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       mq_send, mq_timedsend - Envoyer un message a une file de messages

SYNOPSIS

       #include <mqueue.h>

       int mq_send(mqd_t mqdes, const char *msg_ptr,
                     size_t msg_len, unsigned msg_prio);

       #include <time.h>
       #include <mqueue.h>

       int mq_timedsend(mqd_t mqdes, const char *msg_ptr,
                     size_t msg_len, unsigned msg_prio,
                     const struct timespec *abs_timeout);

       Effectuez l'edition des liens avec l'option -lrt.

   Exigences de macros de test de fonctionnalites pour la glibc (consultez
   feature_test_macros(7)) :

       mq_timedsend() :
           _XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L

DESCRIPTION

       mq_send() ajoute le message pointe par msg_ptr a la  file  de  messages
       referencee  par  le  descripteur  mqdes. L'argument msg_len specifie la
       longueur du message  pointe  par  msg_ptr.  Cette  longueur  doit  etre
       inferieure ou egale a l'attribut mq_msgsize de la file. Les messages de
       longueur nulle sont permis.

       L'argument msg_prio est un entier non negatif qui specifie la  priorite
       de  ce  message.  Les  messages  sont  places  dans la file en ordre de
       priorite decroissante. Les nouveaux  messages  avec  la  meme  priorite
       seront places apres les anciens messages de meme priorite.

       Si  la  file de messages est deja pleine (c'est-a-dire que le nombre de
       messages de la file est egal a l'attribut mq_maxmsg de la file),  alors
       par  defaut,  mq_send()  bloque tant qu'il n'y a pas d'espace suffisant
       pour placer un message dans la file ou  jusqu'a  ce  que  l'appel  soit
       interrompu par un gestionnaire de signaux. Si le drapeau O_NONBLOCK est
       active pour la description de la file de messages, alors l'appel echoue
       immediatement avec l'erreur EAGAIN.

       mq_timedsend()  se comporte comme mq_send(), excepte que si la file est
       pleine et si le drapeau O_NONBLOCK n'est pas active dans la description
       de la file de messages, alors abs_timeout pointe vers une structure qui
       specifie un temps pendant lequel l'appel sera bloque. Cette limite  est
       un   delai   absolu   en  secondes  et  nanosecondes  depuis  l'epoque,
       1er janvier  1970  a  00:00:00  (UTC),  specifie  dans   la   structure
       suivante :

           struct timespec {
               time_t tv_sec;        /* secondes     */
               long   tv_nsec;       /* nanosecondes */
           };

       Si  la  file  de  messages  est  pleine et si le delai d'attente a deja
       expire  pendant  la   duree   de   l'appel,   mq_timedsend()   s'acheve
       immediatement.

VALEUR RENVOY'EE

       En  cas  de  succes,  mq_send()  et  mq_timedsend() renvoient 0. En cas
       d'erreur, elle renvoient -1 et definissent errno en consequence.

ERREURS

       EAGAIN La file est pleine et le drapeau O_NONBLOCK etait defini pour la
              file de messages referencee par le descripteur mqdes.

       EBADF  Le descripteur specifie dans mqdes n'est pas valable.

       EINTR  L'appel  a  ete  interrompu  par  un  gestionnaire  de  signal ;
              consultez signal(7).

       EINVAL L'appel devrait etre bloque, et abs_timeout n'est  pas  valable,
              soit  car  tv_sec  est inferieur a zero, ou soit car tv_nsec est
              inferieur a zero ou plus grand que 1000 millions.

       EMSGSIZE
              msg_len etait plus grand que l'attribut mq_msgsize de la file de
              messages.

       ETIMEDOUT
              Le  delai d'attente de l'appel a expire avant que le message ait
              ete transfere.

CONFORMIT'E

       POSIX.1-2001.

NOTES

       Sous Linux, mq_timedsend() est un appel systeme et  mq_send()  est  une
       fonction de bibliotheque au dessus de la couche des appels systemes.

VOIR AUSSI

       mq_close(3),  mq_getattr(3),  mq_notify(3),  mq_open(3), mq_receive(3),
       mq_unlink(3), feature_test_macros(7), mq_overview(7), time(7)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/> (2003-2006).  Florentin
       Duneau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.