Provided by: manpages-fr_2.45.1-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 Système 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. Deux processus peuvent opérer sur la  même  file
        en fournissant le même nom à mq_open().
 
        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  (voyez  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  corre‐
        spondants  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.
 
    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_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.
 
    Persistence
        Les  files  de messages POSIX persistent dans le noyau : si une file de
        messages n’est pas supprimée avec mq_unlink(),  elle  existera  jusqu’à
        l’extinction du système.
 
    Liaison
        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 quan‐
        tité 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 maximum de messages dans une file.
               Cette  valeur  agit  comme   une   borne   pour   le   paramètre
               attr->mq_maxmsg  indiqué  à  mq_open(3). La valeur minimale, par
               défaut, de msg_max vaut 10. 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 lim‐
               ite 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 minimale, par défaut, de msgsize_max  vaut
               8192  octets.  La  valeur  maximale vaut INT_MAX (2147483647 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 lim‐
               ite au niveau du système du nombre de files de messages qui peu‐
               vent    ê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é 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 :
 
          $ ls /dev/mqueue/mymq
          QSIZE:129     NOTIFY:2    SIGNO:0    NOTIFY_PID:8260
          $ mount -t mqueue none /dev/mqueue
 
        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 com‐
               ment 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 descrip‐
        teur 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 Système 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. Cepen‐
        dant, les files de messages POSIX sont moins  disponibles  (en  partic‐
        ulier sur les anciens systèmes) que les files de messages Système V.
 

EXEMPLE

        Un  exemple  d’utilisation  des différentes fonctions des files de mes‐
        sages est disponible dans mq_notify(3).
        getrlimit(2),     mq_getsetattr(2),     mq_close(3),     mq_getattr(3),
        mq_notify(3),   mq_open(3),  mq_receive(3),  mq_send(3),  mq_unlink(3),
        poll(2), select(2), epoll(4)
 

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 Julien Cristau <jcristau@debian.org> 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> ».