Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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> >>.