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'échanger des
       données 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 fonctionnalités similaires.

       Les files de messages sont créées et ouvertes en utilisant  mq_open(3).
       Cette  fonction  retourne  un  descripteur de file de messages (mqd_t),
       utilisé pour se  référer  à  la  file  de  messages  ouverte  dans  les
       prochains  appels.  Chaque  file de messages est distinguée par son nom
       sous  la  forme  /un_nom ;  c'est-à-dire  un  chaîne  terminée  par  un
       caractère   nul   pouvant   avoir   jusqu'à  NAME_MAX (255) caractères,
       commençant par une barre oblique (« / ») suivie d'un caractère ou plus,
       aucun de ces derniers n'étant une barre oblique. Deux processus peuvent
       opérer sur la même file en fournissant le même nom à mq_open(3).

       Les messages sont transférés à une file et récupérés 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  nécessaire,  elle  peut  être  supprimée avec
       mq_unlink(3). Les attributs de la file peuvent être  obtenus  et  (dans
       certains  cas) modifiés en utilisant mq_getattr(3) et mq_setattr(3). Un
       processus peut demander un avertissement asynchrone de  l'arrivée  d'un
       message sur une file auparavant vide en utilisant mq_notify(3).

       Un  descripteur de file de messages est une référence à une description
       d'une file de messages ouverte (consultez open(2)). Après  un  appel  à
       fork(2),  un  processus fils hérite des copies des descripteurs de file
       de messages de son parent,  et  ces  descripteurs  réfèrent  aux  mêmes
       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  associé  à  la
       description de la file de messages ouverte.

       Chaque message contient une priorit associée,  et  les  messages  sont
       toujours  délivrés  au  processus  de  réception par ordre de priorité.
       L'intervalle  de  priorité  des   messages   va   de   0   (faible)   à
       sysconf(_SC_MQ_PRIO_MAX) - 1         (haute).         Sur        Linux,
       sysconf(_SC_MQ_PRIO_MAX) renvoie 32768, mais  POSIX.1-2001  ne  demande
       qu'une  implémentation gérant des priorités allant de 0 à 31. Certaines
       implémentations ne proposent que cet intervalle.

       Le reste  de  cette  section  décrit  certains  détails  spécifiques  à
       l'implémentation Linux des queues de messages POSIX.

   Interfaces de bibliothèque et appels système
       Dans  la  plupart  des  cas, les interfaces de bibliothèque mq_*() sont
       implémentées autour d'appels système du  même  nom.  Les  exceptions  à
       cette règle sont indiquées dans le tableau ci‐dessous :

           Fonction de bibliothèque   Appel système
           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 gérées par Linux que depuis le
       noyau 2.6.6.  La  gestion  n'a  été  ajoutée  à  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  activée
       par défaut.

   Persistance
       Les  files  de messages POSIX persistent dans le noyau : si une file de
       messages n'est pas supprimée avec mq_unlink(3), elle  existera  jusqu'à
       l'extinction du système.

   Édition des liens
       Les programmes utilisant l'API des files de messages POSIX doivent être
       compilés avec cc -lrt pour  être  liés  à  la  bibliothèque  temps-réel
       librt.

   Interfaces /proc
       Les  interfaces  suivantes  peuvent  être  utilisées  pour  limiter  la
       quantité de mémoire du noyau utilisée par les files de messages POSIX :

       /proc/sys/fs/mqueue/msg_max
              Ce fichier peut être  utilisé  pour  visualiser  et  changer  la
              valeur  limite pour le nombre maximal de messages dans une file.
              Cette  valeur  agit  comme   une   borne   pour   le   paramètre
              attr->mq_maxmsg  indiqué  à  mq_open(3). La valeur par défaut de
              msg_max vaut 10. La valeur minimale est de 1 (10 pour les noyaux
              antérieurs   à  2.6.28).  La  valeur  maximale  vaut  HARD_MAX :
              (131072 / sizeof(void *)) (32768 sur Linux/86). Cette limite est
              ignorée  pour les processus privilégiés (CAP_SYS_RESOURCE), mais
              la limite HARD_MAX reste néanmoins imposée.

       /proc/sys/fs/mqueue/msgsize_max
              Ce fichier peut être utilisé  pour  visualiser  et  modifier  la
              limite  de  la  taille  maximale des messages. Cette valeur agit
              comme une borne pour le  paramètre  attr->mq_msgsize  indiqué  à
              mq_open(3).   La   valeur  par  défaut  de  msgsize_max  est  de
              8192 octets. La valeur minimale est de 128 (8192 pour les noyaux
              antérieurs  à  2.6.28). La valeur maximale de msgsize_max est de
              1 048 576 octets (dans les noyaux antérieurs à 2.6.28, la valeur
              maximale   était  de  INT_MAX,  c'est-à-dire  2 147 483 647  sur
              Linux/86).  Cette  limite  est  ignorée   pour   les   processus
              privilégiés (CAP_SYS_RESOURCE).

       /proc/sys/fs/mqueue/queues_max
              Ce  fichier  peut  être  utilisé  pour visualiser et modifier la
              limite au niveau du système du nombre de files de  messages  qui
              peuvent   être   créées.   Seuls   les   processus   privilégiés
              (CAP_SYS_RESOURCE) peuvent créer de nouvelles files de  messages
              une  fois  que la limite a été atteinte. La valeur par défaut de
              queues_max vaut 256, elle  peut  être  remplacée  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 quantité d'espace qui peut être utilisée par toutes les files de
       messages appartenant à l'identifiant utilisateur réel du processus, est
       décrite dans getrlimit(2).

   Monter le système de fichiers des files de messages
       Sous Linux, les files de  messages  sont  créées  dans  un  système  de
       fichiers  virtuel.  (D'autres  implémentation peuvent également fournir
       une  telle  fonctionnalité,  mais   les   détails   sont   probablement
       différents.)   Ce   système   de  fichiers  peut  être  monté  (par  le
       superutilisateur) en utilisant les commandes suivantes :

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

       Le « sticky bit » est  automatiquement  activé  sur  le  répertoire  de
       montage.

       Une  fois  le  système  de fichiers monté, les files de messages sur le
       système peuvent être  visualisées  et  manipulées  avec  les  commandes
       utilisées  habituellement  pour  les  fichiers  (par  exemple, ls(1) et
       rm(1)).

       Le contenu de chaque fichier dans le répertoire est composé 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 caractéristiques suivantes :

       QSIZE  Nombre d'octets de données dans tous les messages de la file.

       NOTIFY_PID
              Si  différent de zéro, alors le processus avec cet identifiant a
              utilisé mq_notify(3) pour s'enregistrer pour les  avertissements
              asynchrones  de  messages,  et  les  champs  suivants  décrivent
              comment ces avertissements se produisent.

       NOTIFY Méthode d'avertissement : 0 pour SIGEV_SIGNAL, 1 pour SIGEV_NONE
              et 2 pour SIGEV_THREAD.

       SIGNO  Numéro de signal à 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 être contrôlé avec  select(2),  poll(2)
       ou epoll(7). Ceci n'est pas portable.

CONFORMITÉ

       POSIX.1-2001.

NOTES

       Les  files de messages System V (msgget(2), msgsnd(2), msgrcv(2), etc.)
       sont une ancienne API d'échange de messages entre  les  processus.  Les
       files  de  messages  POSIX  fournissent  une  interface  mieux  conçue.
       Cependant, les files de  messages  POSIX  sont  moins  disponibles  (en
       particulier  sur  les  anciens  systèmes)  que  les  files  de messages
       System V.

       Actuellement (2.6.26), Linux ne gère pas l'utilisation  des  listes  de
       contrôle  d'accès  (ACL :  Access  Control  List) des files de messages
       POSIX.

EXEMPLE

       Un  exemple  d'utilisation  des  différentes  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       être       trouvées      à      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   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'équipe francophone de traduction de Debian (2006-2009).

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