Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
mq_send, mq_timedsend - Envoyer un message a une file de messages
SYNOPSIS
#include <mqueue.h>
int mq_send(mqd_t mqdes, const char *msg_ptr,
size_t msg_len, unsigned msg_prio);
#include <time.h>
#include <mqueue.h>
int mq_timedsend(mqd_t mqdes, const 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_timedsend() :
_XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L
DESCRIPTION
mq_send() ajoute le message pointe par msg_ptr a la file de messages
referencee par le descripteur mqdes. L'argument msg_len specifie la
longueur du message pointe par msg_ptr. Cette longueur doit etre
inferieure ou egale a l'attribut mq_msgsize de la file. Les messages de
longueur nulle sont permis.
L'argument msg_prio est un entier non negatif qui specifie la priorite
de ce message. Les messages sont places dans la file en ordre de
priorite decroissante. Les nouveaux messages avec la meme priorite
seront places apres les anciens messages de meme priorite.
Si la file de messages est deja pleine (c'est-a-dire que le nombre de
messages de la file est egal a l'attribut mq_maxmsg de la file), alors
par defaut, mq_send() bloque tant qu'il n'y a pas d'espace suffisant
pour placer un message dans la file ou jusqu'a ce que l'appel soit
interrompu par un gestionnaire de signaux. Si le drapeau O_NONBLOCK est
active pour la description de la file de messages, alors l'appel echoue
immediatement avec l'erreur EAGAIN.
mq_timedsend() se comporte comme mq_send(), excepte que si la file est
pleine 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 la file de messages est pleine et si le delai d'attente a deja
expire pendant la duree de l'appel, mq_timedsend() s'acheve
immediatement.
VALEUR RENVOY'EE
En cas de succes, mq_send() et mq_timedsend() renvoient 0. En cas
d'erreur, elle renvoient -1 et definissent errno en consequence.
ERREURS
EAGAIN La file est pleine 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 grand 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_timedsend() est un appel systeme et mq_send() 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_receive(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> >>.