Loading

NOM

       mq_getattr,  mq_setattr  -  Obtenir/définir les attributs d’une file de
       messages

SYNOPSIS

       #include <mqueue.h>

       mqd_t mq_getattr(mqd_t mqdes, struct mq_attr *attr);

       mqd_t mq_setattr(mqd_t mqdes, struct mq_attr *newattr,
                        struct mq_attr *oldattr);

       Effectuez l’édition des liens avec l’option -lrt.

       Les fonctions mq_getattr() et mq_setattr() extraient et  modifient  les
       attributs de la file de messages référencée par le descripteur mqdes.

       mq_getattr()  renvoie  une  structure mq_attr dans le tampon pointé par
       attr. Cette structure est définie comme suit :

           struct mq_attr {
               long mq_flags;       /* Drapeaux : 0 or O_NONBLOCK */
               long mq_maxmsg;      /* Max. # de messages dans la file */
               long mq_msgsize;     /* Max de la taille du message (octets) */
               long mq_curmsgs;     /* # de messages actuellement dans la file */
           };

       Le champ mq_flags contient des drapeaux associés à la description de la
       file  de  messages ouverte. Ce champ est initialisé lorsque la file est
       créée avec mq_open(3). Le seul drapeau  qui  peut  apparaître  dans  ce
       champ est O_NONBLOCK.

       Les  champs  mq_maxmsg  et  mq_msgsize  sont définis lorsque la file de
       messages est créée avec mq_open(3). Le champ mq_maxmsg  est  le  nombre
       maximal  de  messages  qui  peuvent  être  placés  dans  la  file  avec
       mq_send(3). Le champ mq_msgsize est la taille maximale des messages qui
       peuvent  être  placés dans la file. Chacun de ces champs doit avoir une
       valeur supérieure à zéro. Deux fichiers de  /proc  qui  plafonnent  ces
       valeurs pour ces champs sont décrites dans mq_open(3).

       Le  champ mq_curmsgs renvoie le nombre de messages actuellement dans la
       file.

       mq_setattr() définit les attributs de la  file  de  messages  avec  les
       informations  fournies par la structure mq_attr pointée par newattr. Le
       seul attribut qui peut  être  modifié  est  le  drapeau  O_NONBLOCK  de
       mq_flags.  Les  autres  champs  de  newattr  sont  ignorés. Si le champ
       oldattr est non NULL, alors le tampon qu’il  pointe  est  utilisé  pour
       renvoyer  une structure mq_attr contenant les mêmes informations que la
       fonction mq_getattr() renverrait.

VALEUR RENVOYÉE

       En cas de succès, mq_getattr() et  mq_setattr()  renvoient  0.  En  cas
       d’erreur, elles renvoient -1 et définissent errno en conséquence.

ERREURS

       EBADF  Le descripteur spécifié dans mqdes n’est pas valable.

       EINVAL newattr->mq_flags   contient   des   bits   définis  autres  que
              O_NONBLOCK.

CONFORMITÉ

       POSIX.1-2001.

NOTES

       Sous  Linux,  mq_getattr()  et  mq_setattr()   sont  des  fonctions  de
       bibliothèque au dessus de l’appel système mq_getsetattr(2).

VOIR AUSSI

       mq_close(3),   mq_notify(3),   mq_open(3),  mq_receive(3),  mq_send(3),
       mq_unlink(3), mq_overview(7)

COLOPHON

       Cette page fait partie de  la  publication  3.23  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

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