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

NOM

       mq_receive,  mq_timedreceive  -  Recevoir  un  message  d'une  file  de
       messages

SYNOPSIS

       #include <mqueue.h>

       ssize_t mq_receive(mqd_t mqdes, char *msg_ptr,
                          size_t msg_len, unsigned *msg_prio);

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

       ssize_t mq_timedreceive(mqd_t mqdes, 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_timedreceive() :
           _XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L

DESCRIPTION

       mq_receive() supprime le plus vieux message avec la plus haute priorite
       de la file de messages referencee par mqdes, et le place dans un tampon
       pointe  par  msg_ptr.  L'argument  msg_len specifie la taille du tampon
       pointe par msg_ptr ; celui-ci  doit  etre  plus  large  que  l'attribut
       mq_msgsize  de la file (consultez mq_getattr(3)). Si prio est non NULL,
       alors le tampon vers lequel il pointe  est  utilise  pour  renvoyer  la
       priorite associee au message recu.

       Si  la  file  est  vide,  alors  par  defaut,  mq_receive() bloque tant
       qu'aucun message n'est disponible, ou que l'appel n'est pas  interrompu
       par  un  gestionnaire  de  signaux. Si le drapeau O_NONBLOCK est active
       dans la  description  de  file  de  messages,  alors  l'appel  echouera
       immediatement avec l'erreur EAGAIN.

       mq_timedreceive()  se  comporte  comme  mq_receive(), excepte que si la
       file est vide 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  aucun  message  n'est  disponible  et  si le delai d'attente a deja
       expire  pendant  la  duree  de  l'appel,   mq_timedreceive()   s'acheve
       immediatement.

VALEUR RENVOY'EE

       En cas de succes, mq_receive() et mq_timedreceive() renvoient le nombre
       d'octets du message recu. En cas d'erreur,  -1  est  renvoye  et  errno
       indique l'erreur.

ERREURS

       EAGAIN La  file  est vide 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 petit 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_timedreceive() est un appel systeme et mq_receive() 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_send(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> >>.