Provided by: manpages-fr-dev_3.27fr1.4-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'edition des liens avec l'option -lrt.

DESCRIPTION

       La  fonction  mq_open()  cree  une  nouvelle file de messages POSIX, ou
       ouvre une file de messages existante. La file est identifiee par  name.
       Pour   plus   de   details  sur  la  construction  de  name,  consultez
       mq_overview(7).

       L'argument oflag  specifie  les  drapeaux  qui  controlent  l'operation
       d'appel  (les  definitions  des  valeurs  des  attributs  peuvent  etre
       obtenues en incluant <fcntl.h>). Un unique drapeau parmi  les  suivants
       doit etre specifie 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.

       Zero ou plusieurs des drapeaux suivants peuvent etre ajoutes avec un ou
       binaire dans oflag :

       O_NONBLOCK
              Ouvrir  une  file  en  mode  non  bloquant.   Dans   de   telles
              circonstances  ou  mq_receive(3)  et  mq_send(3)  devraient etre
              normalement bloquantes, ces fonctions echoueront  avec  le  code
              d'erreur EAGAIN.

       O_CREAT
              Creer  la file de messages si elle n'existe pas. Le proprietaire
              de la file de messages est defini a l'UID du processus appelant,
              il en est de meme pour le GID.

       O_EXCL Si  O_CREAT  est specifie dans oflag, et si une file de nom name
              existe deja, alors elle echouera et renverra  le  code  d'erreur
              EEXIST.

       Si  O_CREAT  est specifie dans oflag, alors deux arguments additionnels
       doivent etre specifies. L'argument mode specifie les permissions de  la
       nouvelle file, comme pour open(2) (les definitions symboliques des bits
       de permissions peuvent etre  obtenues  en  incluant  <sys/stat.h>).  La
       definition des permissions est masquee avec l'<< umask >> du processus.
       L'argument  attr  specifie  les  attributs  de   la   file.   Consultez
       mq_getattr(3) pour plus de details. Si attr est NULL, alors la file est
       creee avec les attributs par defaut de l'implementation.

VALEUR RENVOY'EE

       En cas de succes, mq_open() renvoie un descripteur de file de  messages
       a  utiliser  avec  les  autres  fonctions des files de messages. En cas
       d'erreur, mq_open() renvoie (mqd_t) -1, avec errno definie.

ERREURS

       EACCES La file existe mais l'appelant  n'a  pas  les  permissions  pour
              l'ouvrir dans le mode specifie.

       EACCES name contient plus d'un caratere << / >>.

       EEXIST O_CREAT  et O_EXCL sont specifies dans oflag, mais une file avec
              le meme nom existe deja.

       EINVAL O_CREAT etait specifie dans oflag, et attr etait non NULL,  mais
              attr->mq_maxmsg  ou  attr->mq_msqsize  n'etait  pas valable. Ces
              deux champs doivent etre superieurs a zero.  Avec  un  processus
              non  privilegie  (qui  n'a  pas  la  capacite CAP_SYS_RESOURCE),
              attr->mq_maxmsg doit etre inferieur ou egal a la limite msg_max,
              et  attr->mq_msgsize  doit  etre  inferieur  ou egal a la limite
              msgsize_max.  En  plus,  meme  avec  un  processus   privilegie,
              attr->mq_maxmsg  ne  peut  pas  etre  plus  grand  que la limite
              HARD_MAX. Consultez mq_overview(7)  pour  les  details  sur  ces
              limites.

       EMFILE Le processus a deja le nombre maximal autorise de fichiers et de
              files de messages ouverts.

       ENAMETOOLONG
              name est trop long.

       ENFILE La limite systeme du nombre de fichiers ouverts et de  files  de
              messages a ete atteinte.

       ENOENT Le  drapeau  O_CREAT  n'a pas ete specifie dans oflag, et aucune
              file avec le nom name n'existe.

       ENOENT name est juste << / >> suivi d'aucun autre caractere.

       ENOMEM Memoire insuffisante.

       ENOSPC Pas assez d'espace pour la  creation  de  la  nouvelle  file  de
              messages.   Ceci   s'est  probablement  produit  car  la  limite
              queues_max a ete atteinte ; consultez mq_overview(7).

CONFORMIT'E

       POSIX.1-2001.

BOGUES

       Avec les noyaux  anterieurs  a  la  version  2.6.14,  l'<< umask >>  du
       processus n'est pas applique aux permissions specifiees 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.27  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).  Florentin
       Duneau 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> >>.

Linux                           20 fevrier 2009                     MQ_OPEN(3)