Loading

NOM

       mq_open - Ouvrir une file de messages

SYNOPSIS

       #include <fcntl.h>           /* Pour les constantes O_* */
       #include <sys/stat.h>        /* Pour les constantes des modes */
       #include <mqueue.h>

       mqd_t mq_open(const char *name, int oflag);
       mqd_t mq_open(const char *name, int oflag, mode_t mode,
                     struct mq_attr *attr);

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

       La  fonction  mq_open()  crée  une  nouvelle file de messages POSIX, ou
       ouvre une file de messages existante. La file est identifiée par  name.
       Pour   plus   de   détails  sur  la  construction  de  name,  consultez
       mq_overview(7).

       L’argument oflag  spécifie  les  drapeaux  qui  contrôlent  l’opération
       d’appel  (les  définitions  des  valeurs  des  attributs  peuvent  être
       obtenues en incluant <fcntl.h>). Un unique drapeau parmi  les  suivants
       doit être spécifié dans oflag :

       O_RDONLY
              Ouvrir une file pour seulement recevoir des messages.

       O_WRONLY
              Ouvrir une file pour seulement envoyer des messages.

       O_RDWR Ouvrir une file pour soit envoyer ou soit recevoir des messages.

       Zéro ou plusieurs des drapeaux suivants peuvent être ajoutés avec un ou
       binaire dans oflag :

       O_NONBLOCK
              Ouvrir   une   file   en  mode  non  bloquant.  Dans  de  telles
              circonstances où  mq_receive(3)  et  mq_send(3)  devraient  être
              normalement  bloquantes,  ces  fonctions échoueront avec le code
              d’erreur EAGAIN.

       O_CREAT
              Créer la file de messages si elle n’existe pas. Le  propriétaire
              de la file de messages est défini à l’UID du processus appelant,
              il en est de même pour le GID.

       O_EXCL Si O_CREAT est spécifié dans oflag, et si une file de  nom  name
              existe  déjà,  alors  elle échouera et renverra le code d’erreur
              EEXIST.

       Si O_CREAT est spécifié dans oflag, alors deux  arguments  additionnels
       doivent  être spécifiés. L’argument mode spécifie les permissions de la
       nouvelle file, comme pour open(2) (les définitions symboliques des bits
       de  permissions  peuvent  être  obtenues  en incluant <sys/stat.h>). La
       définition des permissions est masquée avec l’« umask »  du  processus.
       L’argument   attr   spécifie   les  attributs  de  la  file.  Consultez
       mq_getattr(3) pour plus de détails. Si attr est NULL, alors la file est
       créée avec les attributs par défaut de l’implémentation.

VALEUR RENVOYÉE

       En  cas de succès, mq_open() renvoie un descripteur de file de messages
       à utiliser avec les autres fonctions des  files  de  messages.  En  cas
       d’erreur, mq_open() renvoie (mqd_t) -1, avec errno définie.

ERREURS

       EACCES La  file  existe  mais  l’appelant  n’a pas les permissions pour
              l’ouvrir dans le mode spécifié.

       EACCES name contient plus d’un caratère « / ».

       EEXIST O_CREAT et O_EXCL sont spécifiés dans oflag, mais une file  avec
              le même nom existe déjà.

       EINVAL O_CREAT  était spécifié dans oflag, et attr était non NULL, mais
              attr->mq_maxmsg ou attr->mq_msqsize  n’était  pas  valable.  Ces
              deux  champs  doivent  être supérieurs à zéro. Avec un processus
              non privilégié  (qui  n’a  pas  la  capacité  CAP_SYS_RESOURCE),
              attr->mq_maxmsg doit être inférieur ou égal à la limite msg_max,
              et attr->mq_msgsize doit être inférieur  ou  égal  à  la  limite
              msgsize_max.   En  plus,  même  avec  un  processus  privilégié,
              attr->mq_maxmsg ne peut  pas  être  plus  grand  que  la  limite
              HARD_MAX.  Consultez  mq_overview(7)  pour  les  détails sur ces
              limites.

       EMFILE Le processus a déjà le nombre maximal autorisé de fichiers et de
              files de messages ouverts.

       ENAMETOOLONG
              name est trop long.

       ENFILE La  limite  système du nombre de fichiers ouverts et de files de
              messages a été atteinte.

       ENOENT Le drapeau O_CREAT n’a pas été spécifié dans  oflag,  et  aucune
              file avec le nom name n’existe.

       ENOENT name est juste « / » suivi d’aucun autre caractère.

       ENOMEM Mémoire insuffisante.

       ENOSPC Pas  assez  d’espace  pour  la  création  de la nouvelle file de
              messages.  Ceci  s’est  probablement  produit  car   la   limite
              queues_max a été atteinte ; consultez mq_overview(7).

CONFORMITÉ

       POSIX.1-2001.

BOGUES

       Avec  les  noyaux  antérieurs  à  la  version  2.6.14,  l’« umask »  du
       processus n’est pas appliqué aux permissions spécifiées par mode.

VOIR AUSSI

       mq_close(3), mq_getattr(3),  mq_notify(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> ».