Provided by: manpages-fr-dev_3.57d1p1-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 int *msg_prio);

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

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

       Effectuez l'édition des liens avec l'option -lrt.

   Exigences de macros de test de fonctionnalités 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  priorité  de  la  file  de
       messages  référencée  par mqdes, et le place dans un tampon pointé par msg_ptr. L'argument
       msg_len indique la taille du tampon pointé par msg_ptr ; celui-ci doit être plus large  ou
       aussi  grand  que  l'attribut mq_msgsize de la file (consultez mq_getattr(3)). Si msg_prio
       est non NULL, alors le tampon vers lequel il pointe est utilisé pour renvoyer la  priorité
       associée au message reçu.

       Si  la  file  est  vide, alors par défaut, 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  activé  dans  la  description de file de messages, alors l'appel
       échouera immédiatement avec l'erreur EAGAIN.

       mq_timedreceive() se comporte comme mq_receive(), excepté que si la file est vide et si le
       drapeau  O_NONBLOCK  n'est  pas  activé  dans la description de la file de messages, alors
       abs_timeout pointe vers une structure qui spécifie un temps pendant  lequel  l'appel  sera
       bloqué.  Cette  limite  est  un  délai absolu en secondes et nanosecondes depuis l'époque,
       1er janvier 1970 à 00:00:00 (UTC), spécifié dans la structure suivante :

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

       Si aucun message n'est disponible et si le délai d'attente a déjà expiré pendant la  durée
       de l'appel, mq_timedreceive() s'achève immédiatement.

VALEUR RENVOYÉE

       En  cas  de  succès,  mq_receive()  et  mq_timedreceive()  renvoient le nombre d'octets du
       message reçu. En cas d'erreur, -1 est renvoyé et errno indique l'erreur.

ERREURS

       EAGAIN La file est vide et le drapeau O_NONBLOCK était défini pour  la  file  de  messages
              référencée par le descripteur mqdes.

       EBADF  Le descripteur spécifié dans mqdes n'est pas valable.

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

       EINVAL L'appel  devrait être bloqué, et abs_timeout n'est pas valable, soit car tv_sec est
              inférieur à zéro, ou soit car tv_nsec est  inférieur  à  zéro  ou  plus  grand  que
              1000 millions.

       EMSGSIZE
              msg_len était plus petit que l'attribut mq_msgsize de la file de messages.

       ETIMEDOUT
              Le délai d'attente de l'appel a expiré avant que le message ait été transféré.

CONFORMITÉ

       POSIX.1-2001.

NOTES

       Sous  Linux,  mq_timedreceive()  est  un appel système et mq_receive() est une fonction de
       bibliothèque au dessus de la couche des appels systèmes.

VOIR AUSSI

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

COLOPHON

       Cette  page  fait partie de la publication 3.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

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

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

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

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».