Rechercher une page de manuel

Chercher une autre page de manuel:

mq_timedreceive

Autres langues

Langue: fr

Version: 25 février 2006 (ubuntu - 01/11/07)

Autres sections - même nom

Section: 3 (Bibliothèques de fonctions)

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);
 
 #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);
 

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 spécifie la taille du tampon pointé par msg_ptr ; celui-ci doit être plus large que l'attribut mq_msgsize de la file (voyez mq_getattr(3)). Si 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 actif pour la description de la file de messages, alors abs_timeout pointe vers une structure qui spécifie une limite de l'heure jusqu'à laquelle l'appel sera bloqué. Cette limite est un délai absolu en secondes et nanosecondes depuis Epoch (00 h 00 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 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.
EMSGSIZE
msg_len était plus petit que l'attribut mq_msgsize de la file de messages.
EINTR
L'appel a été interrompu par un gestionnaire de signal.
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.
ETIMEDOUT
Le délai d'attente de l'appel a expiré avant que le message ait été transféré.

CONFORMITÉ À

POSIX.1-2001.

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)

TRADUCTION

Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006, et mise à disposition sur http://manpagesfr.free.fr/.

Les mises à jour et corrections de la version présente dans Debian sont directement gérées par Florentin Duneau <fduneau@gmail.com> et l'équipe francophone de traduction de Debian.

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> ».

> > Oh, j'aime pas trop parler de comment MultideskOS gère les progs...
> Pourquoi ? Trop technique pour vous ? ;-)
Non, mais je n'aime pas que tout le monde connaisse son fonctionnement
parfaitement, car je ne veux pas qu'on me vole mon projet. Je sais qu'il
y a de bons programmeurs dans le monde et qu'ils seraient tout a fait
capables de prendre mes idées.
-- Jayce - Espionnage industriel --