mq_receive   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 25 février 2006
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
mq_receive, mq_timedreceive - Recevoir un message d'une file de messages  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <mqueue.h>

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

#define _XOPEN_SOURCE 600
#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);

Lier avec -lrt.  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
mq_receive() supprime le plus vieux message avec la plus grande priorité de la file de messages référencée par la descripteur mqdes, et le place dans le tampon pointé par msg_ptr. L'argument msg_len spécifie la taille du tampon pointé par msg_ptr ; il doit être plus grand que l'attribut mq_msgsize de la file (voir mq_getattr(3)). Si prio n'est pas NULL, le tampon sur 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() bloquera jusqu'à ce qu'un message soit disponible ou que l'appel soit interrompu par un gestionnaire de signaux. Si l'attribut O_NONBLOCK est activé pour la description de la file de messages, l'appel échouera immédiatement avec l'erreur EAGAIN.

mq_timedreceive() se comporte comme mq_receive(), excepté que si la file est vide et que l'attribut O_NONBLOCK n'est pas activé pour la description de la file de messages, abs_timeout pointe sur une structure qui spécifie un plafond sur le temps pendant lequel l'appel bloquera. Le plafond est un délai absolu en secondes et nanosecondes depuis l'Époque (minuit du matin du 1er janvier 1970) spécifié dans la structure suivante :

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

Si aucun message n'est disponible et que le délai d'attente a déjà expiré mq_timedreceive() revient immédiatement.  



VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Si elles réussissent, mq_receive() et mq_timedreceive() renvoient le nombre d'octets dans le message reçu ; si elles échouent, elles renvoient -1 et écrivent errno en conséquence.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
EAGAIN
La file de message est vide et l'attribut O_NONBLOCK est positionné pour la description de la file de messages référencée par mqdes.
EBADF
Le descripteur spécifié par mqdes n'est pas valide.
EINTR
L'appel a été interrompu par un gestionnaire de signaux.
EINVAL
L'appel a bloqué et abs_timeout n'est pas valide, soit parce que tv_sec est plus petit que zéro, soit parce que tv_nsec est plus petit que zéro ou plus grand que 1000 millions.
EMSGSIZE
msg_len est 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É   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
POSIX.1-2001.  



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 23 juillet 2006 et révisée le 6 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 mq_receive ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EAGAINERREURS
EBADFERREURS
EINTRERREURS
EINVALERREURS
EMSGSIZEERREURS
ETIMEDOUTERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:50:51, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional