Provided by: manpages-fr-dev_3.65d1p1-1_all bug

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.

DESCRIPTION

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

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe      Blaess      <http://www.blaess.fr/christophe/>      (1996-2003),       Alain       Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Florentin  Duneau  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> ».

Linux                                            20 février 2009                                      MQ_OPEN(3)