dwww Home | Manual pages | Find package

mq_send(3)                 Library Functions Manual                 mq_send(3)

NOM
       mq_send, mq_timedsend - Envoyer un message à une file de messages

BIBLIOTHÈQUE
       Bibliothèque de temps réel (librt, -lrt)

SYNOPSIS
       #include <mqueue.h>

       int mq_send(mqd_t mqdes, const char msg_ptr[.msg_len],
                     size_t msg_len, unsigned int msg_prio);

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

       int mq_timedsend(mqd_t mqdes, const char msg_ptr[.msg_len],
                     size_t msg_len, unsigned int msg_prio,
                     const struct timespec *abs_timeout);

   Exigences de macros de test de fonctionnalités pour la glibc (consulter
   feature_test_macros(7)) :

       mq_timedsend() :
           _POSIX_C_SOURCE >= 200112L

DESCRIPTION
       mq_send() ajoute le message pointé par msg_ptr à la file de messages
       référencée par le descripteur de file de messages mqdes. L'argument
       msg_len spécifie la longueur du message pointé par msg_ptr. Cette lon-
       gueur doit être inférieure ou égale à l'attribut mq_msgsize de la file.
       Les messages de longueur nulle sont permis.

       L'argument msg_prio est un entier non négatif qui spécifie la priorité
       de ce message. Les messages sont placés dans la file en ordre de prio-
       rité décroissante. Les nouveaux messages avec la même priorité seront
       placés après les anciens messages de même priorité. Consulter mq_over-
       view(7) pour plus de détails sur la plage de priorité des messages.

       Si la file de messages est déjà pleine (c'est-à-dire que le nombre de
       messages de la file est égal à l'attribut mq_maxmsg de la file), alors
       par défaut, mq_send() bloque tant qu'il n'y a pas d'espace suffisant
       pour placer un message dans la file ou jusqu'à ce que l'appel soit in-
       terrompu par un gestionnaire de signaux. Si le drapeau O_NONBLOCK est
       activé pour la description de la file de messages, alors l'appel échoue
       immédiatement avec l'erreur EAGAIN.

       mq_timedsend()  behaves just like mq_send(), except that if the queue
       is full and the O_NONBLOCK flag is not enabled for the message queue
       description, then abs_timeout points to a structure which specifies how
       long the call will block. This value is an absolute timeout in seconds
       and nanoseconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC), spe-
       cified in a timespec(3)  structure.

       Si la file de messages est pleine et si le délai d'attente a déjà ex-
       piré pendant la durée de l'appel, mq_timedsend() s'achève immédiate-
       ment.

VALEUR RENVOYÉE
       En cas de succès, mq_send() et mq_timedsend() renvoient 0. En cas d'er-
       reur, elle renvoient -1 et définissent errno en conséquence.

ERREURS
       EAGAIN La file est pleine 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 ou n'est
              pas ouvert en écriture.

       EINTR  L'appel a été interrompu par un gestionnaire de signal ; consul-
              tez 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 grand 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é.

ATTRIBUTS
       Pour une explication des termes utilisés dans cette section, consulter
       attributes(7).

       ┌─────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├─────────────────────────────────────┼──────────────────────┼─────────┤
       │mq_send(), mq_timedsend()            │ Sécurité des threads │ MT-Safe │
       └─────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS
       POSIX.1-2001, POSIX.1-2008.

NOTES
       Sous Linux, mq_timedsend() est un appel système et  mq_send()  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_receive(3),
       mq_unlink(3), timespec(3), mq_overview(7), time(7)

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Fran-
       çois  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Gué-
       rard <fevrier@tigreraye.org>, Jean-Luc  Coulon  (f5ibh)  <jean-luc.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org>  et  Jean-Pierre  Giraud
       <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la        GNU        General       Public       License       version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant  les  conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous découvrez un bogue dans la traduction de cette page de manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

Pages du manuel de Linux 6.03  15 décembre 2022                     mq_send(3)

Generated by dwww version 1.15 on Sat Jun 29 01:39:58 CEST 2024.