Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       mq_overview - Panorama des files de messages POSIX

DESCRIPTION

       Les  files  de  messages  POSIX permettent aux processus d'echanger des
       donnees sous forme de  messages.  Cette  API  est  distincte  de  celle
       fournie  par  les  files  de  messages  System V (msgget(2), msgsnd(2),
       msgrcv(2), etc.), mais propose des fonctionnalites similaires.

       Les files de messages sont creees et ouvertes en utilisant  mq_open(3).
       Cette  fonction  retourne  un  descripteur de file de messages (mqd_t),
       utilise pour se  referer  a  la  file  de  messages  ouverte  dans  les
       prochains  appels.  Chaque  file de messages est distinguee par son nom
       sous  la  forme  /un_nom ;  c'est-a-dire  un  chaine  terminee  par  un
       caractere   nul   pouvant   avoir   jusqu'a  NAME_MAX (255) caracteres,
       commencant par une barre oblique (<< / >>)  suivie  d'un  caractere  ou
       plus,  aucun  de ces derniers n'etant une barre oblique. Deux processus
       peuvent  operer  sur  la  meme  file  en  fournissant  le  meme  nom  a
       mq_open(3).

       Les messages sont transferes a une file et recuperes depuis une file en
       utilisant mq_send(3)  et  mq_receive(3).  Lorsqu'un  processus  a  fini
       d'utiliser  la  file,  il la ferme en utilisant mq_close(3), et lorsque
       cette file  n'est  plus  necessaire,  elle  peut  etre  supprimee  avec
       mq_unlink(3).  Les  attributs  de la file peuvent etre obtenus et (dans
       certains cas) modifies en utilisant mq_getattr(3) et mq_setattr(3).  Un
       processus  peut  demander un avertissement asynchrone de l'arrivee d'un
       message sur une file auparavant vide en utilisant mq_notify(3).

       Un descripteur de file de messages est une reference a une  description
       d'une  file  de  messages ouverte (consultez open(2)). Apres un appel a
       fork(2), un processus fils herite des copies des descripteurs  de  file
       de  messages  de  son  parent,  et  ces descripteurs referent aux memes
       descriptions  de  files  de  messages  ouvertes  que  les  descripteurs
       correspondants  du  parent.  Les  descripteurs  correspondants  de deux
       processus  partagent  l'attribut  (mq_flags)  qui  est  associe  a   la
       description de la file de messages ouverte.

       Chaque  message  contient  une  priorit'e associee, et les messages sont
       toujours delivres au processus de  reception  par  ordre  de  priorite.
       L'intervalle   de   priorite   des   messages   va   de  0  (faible)  a
       sysconf(_SC_MQ_PRIO_MAX) - 1        (haute).         Sur         Linux,
       sysconf(_SC_MQ_PRIO_MAX)  renvoie  32768,  mais POSIX.1-2001 ne demande
       qu'une implementation gerant des priorites allant de 0 a 31.  Certaines
       implementations ne proposent que cet intervalle.

       Le  reste  de  cette  section  decrit  certains  details  specifiques a
       l'implementation Linux des queues de messages POSIX.

   Interfaces de biblioth`eque et appels syst`eme
       Dans la plupart des cas, les interfaces  de  bibliotheque  mq_*()  sont
       implementees  autour  d'appels  systeme  du  meme nom. Les exceptions a
       cette regle sont indiquees dans le tableau ci-dessous :

           Fonction de biblioth`eque   Appel syst`eme
           mq_close(3)                close(2)
           mq_getattr(3)              mq_getsetattr(2)
           mq_notify(3)               mq_notify(2)
           mq_open(3)                 mq_open(2)
           mq_receive(3)              mq_timedreceive(2)
           mq_send(3)                 mq_timedsend(2)

           mq_setattr(3)              mq_getsetattr(2)
           mq_timedreceive(3)         mq_timedreceive(2)
           mq_timedsend(3)            mq_timedsend(2)
           mq_unlink(3)               mq_unlink(2)

   Versions
       Les files de messages POSIX ne sont gerees  par  Linux  que  depuis  le
       noyau 2.6.6.  La  gestion  n'a  ete  ajoutee  a  glibc  que  depuis  la
       version 2.3.4.

   Configuration du noyau
       La gestion des files de messages POSIX est configurable via l'option de
       configuration  du  noyau  CONFIG_POSIX_MQUEUE. Cette option est activee
       par defaut.

   Persistance
       Les files de messages POSIX persistent dans le noyau : si une  file  de
       messages  n'est  pas supprimee avec mq_unlink(3), elle existera jusqu'a
       l'extinction du systeme.

   'Edition des liens
       Les programmes utilisant l'API des files de messages POSIX doivent etre
       compiles  avec  cc  -lrt  pour  etre  lies a la bibliotheque temps-reel
       librt.

   Interfaces /proc
       Les  interfaces  suivantes  peuvent  etre  utilisees  pour  limiter  la
       quantite de memoire du noyau utilisee par les files de messages POSIX :

       /proc/sys/fs/mqueue/msg_max
              Ce  fichier  peut  etre  utilise  pour  visualiser et changer la
              valeur limite pour le nombre maximal de messages dans une  file.
              Cette   valeur   agit   comme   une   borne  pour  le  parametre
              attr->mq_maxmsg indique a mq_open(3). La valeur  par  defaut  de
              msg_max vaut 10. La valeur minimale est de 1 (10 pour les noyaux
              anterieurs  a  2.6.28).  La  valeur  maximale  vaut   HARD_MAX :
              (131072 / sizeof(void *)) (32768 sur Linux/86). Cette limite est
              ignoree pour les processus privilegies (CAP_SYS_RESOURCE),  mais
              la limite HARD_MAX reste neanmoins imposee.

       /proc/sys/fs/mqueue/msgsize_max
              Ce  fichier  peut  etre  utilise  pour visualiser et modifier la
              limite de la taille maximale des  messages.  Cette  valeur  agit
              comme  une  borne  pour  le parametre attr->mq_msgsize indique a
              mq_open(3).  La  valeur  par  defaut  de  msgsize_max   est   de
              8192 octets. La valeur minimale est de 128 (8192 pour les noyaux
              anterieurs a 2.6.28). La valeur maximale de msgsize_max  est  de
              1 048 576 octets (dans les noyaux anterieurs a 2.6.28, la valeur
              maximale  etait  de  INT_MAX,  c'est-a-dire  2 147 483 647   sur
              Linux/86).   Cette   limite   est  ignoree  pour  les  processus
              privilegies (CAP_SYS_RESOURCE).

       /proc/sys/fs/mqueue/queues_max
              Ce fichier peut etre utilise  pour  visualiser  et  modifier  la
              limite  au  niveau du systeme du nombre de files de messages qui
              peuvent   etre   creees.   Seuls   les   processus   privilegies
              (CAP_SYS_RESOURCE)  peuvent creer de nouvelles files de messages
              une fois que la limite a ete atteinte. La valeur par  defaut  de
              queues_max  vaut  256,  elle  peut  etre remplacee par n'importe
              quelle valeur entre 0 et INT_MAX.

   Limitation des ressources
       La limitation des ressources RLIMIT_MSGQUEUE, qui  indique  une  limite
       sur la quantite d'espace qui peut etre utilisee par toutes les files de
       messages appartenant a l'identifiant utilisateur reel du processus, est
       decrite dans getrlimit(2).

   Monter le syst`eme de fichiers des files de messages
       Sous  Linux,  les  files  de  messages  sont  creees dans un systeme de
       fichiers virtuel. (D'autres implementation  peuvent  egalement  fournir
       une   telle   fonctionnalite,   mais   les  details  sont  probablement
       differents.)  Ce  systeme  de  fichiers  peut  etre   monte   (par   le
       superutilisateur) en utilisant les commandes suivantes :

           # mkdir /dev/mqueue
           # mount -t mqueue none /dev/mqueue

       Le  << sticky  bit >>  est  automatiquement active sur le repertoire de
       montage.

       Une fois le systeme de fichiers monte, les files  de  messages  sur  le
       systeme  peuvent  etre  visualisees  et  manipulees  avec les commandes
       utilisees habituellement pour  les  fichiers  (par  exemple,  ls(1)  et
       rm(1)).

       Le contenu de chaque fichier dans le repertoire est compose d'une seule
       ligne contenant les informations sur la file :

           $ cat /dev/mqueue/mymq
           QSIZE:129     NOTIFY:2    SIGNO:0    NOTIFY_PID:8260

       Ces champs ont les caracteristiques suivantes :

       QSIZE  Nombre d'octets de donnees dans tous les messages de la file.

       NOTIFY_PID
              Si different de zero, alors le processus avec cet identifiant  a
              utilise  mq_notify(3) pour s'enregistrer pour les avertissements
              asynchrones  de  messages,  et  les  champs  suivants  decrivent
              comment ces avertissements se produisent.

       NOTIFY Methode d'avertissement : 0 pour SIGEV_SIGNAL, 1 pour SIGEV_NONE
              et 2 pour SIGEV_THREAD.

       SIGNO  Numero de signal a utiliser pour SIGEV_SIGNAL.

   Consultation des descripteurs de files de messages
       Sous Linux,  un  descripteur  de  file  de  messages  est  en  fait  un
       descripteur  de  fichier, et peut etre controle avec select(2), poll(2)
       ou epoll(7). Ceci n'est pas portable.

CONFORMIT'E

       POSIX.1-2001.

NOTES

       Les files de messages System V (msgget(2), msgsnd(2), msgrcv(2),  etc.)
       sont  une  ancienne  API d'echange de messages entre les processus. Les
       files  de  messages  POSIX  fournissent  une  interface  mieux  concue.
       Cependant,  les  files  de  messages  POSIX  sont moins disponibles (en
       particulier sur  les  anciens  systemes)  que  les  files  de  messages
       System V.

       Actuellement  (2.6.26),  Linux  ne gere pas l'utilisation des listes de
       controle d'acces (ACL : Access Control  List)  des  files  de  messages
       POSIX.

EXEMPLE

       Un  exemple  d'utilisation  des  differentes  fonctions  des  files  de
       messages est disponible dans mq_notify(3).

VOIR AUSSI

       getrlimit(2),  mq_getsetattr(2),   poll(2),   select(2),   mq_close(3),
       mq_getattr(3),  mq_notify(3),  mq_open(3),  mq_receive(3),  mq_send(3),
       mq_unlink(3), epoll(7)

COLOPHON

       Cette page fait partie de  la  publication  3.32  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).   Julien
       Cristau 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> >>.