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). ┌─────────────────────────────────────┬──────────────────────┬─────────┐ │Interface │ Attribut │ Valeur │ ├─────────────────────────────────────┼──────────────────────┼─────────┤ │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.