Linux |
CentOS 5.3 |
|
mq_open(3) |
mq_open − Ouvrir une file de messages. |
#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); |
mq_open() crée une file de messages POSIX ou en ouvre une existante. La file est identifiée par name. Pour les détails de la construction de name, voir mq_overview(7). L’argument oflag spécifie les attributs qui contrôle les opérations de l’appel. Un seul des attributs suivants doit être spécifié dans Exactly one of the following must be specified in oflag : |
O_RDONLY |
Ouvrir la file en reception seulement. |
O_WRONLY |
Ouvrir la file en émission seulement. |
O_RDWR |
Ouvrir la file en émission et reception. |
Zéro ou plusieurs des attributs suivants peuvent être ajoutés avec un OU binaire avec oflag : |
O_NONBLOCK |
Ouvrir la file en mode non bloquant. Dans les cas où mq_receive() et mq_send() bloqueraient normalement, ces fonctions font plutôt échouer l’appel avec l’erreur EAGAIN. |
O_CREAT |
Créer la file de messages si elle n’existe pas. Le propriétaire (UID) de la file de messages devient l’UID effectif du processus appelant. L’appartenance de groupe (GID) est fixée au GID effectif du processus appelant. |
O_EXCL |
Si O_CREAT était spécifié dans oflag, et qu’un file du nom name existe déjà , il échoue avec l’erreur EEXIST. |
Si O_CREAT était spécifié dans oflag, deux argument supplémentaires doivent être fournis. then two additional arguments must be supplied. L’argument mode spécifie les prmissions à attribuer à la nouvelle file, comme pour open(2). Le réglagle des permissions est « masquée » avec l’umask du processus. L’argument attr spécifie ls attributs de la file. Voir mq_getattr(2) pour les détails. Si attr est NULL, la file est créée avec les attributs par défaut définis par l’implémentation. |
S’il réussit, mq_open() renvoie un descripteur de file de messages qui pouura être utilisé avec les autres fonctions des files de messages. S’il échoue mq_open() renvoie (mqd_t) −1, et écrit errno en conséquence. |
EACCESS |
La file existe, mais l’appelant n’a pas la permission de l’ouvrir dans le mode spécifié. |
EINVAL |
O_CREAT était spécifié dans oflag, et attr n’était pas NULL, mais attr->mq_maxmsg ou attr->mq_msqsize n’était pas valide Ces deux champs doivent être positif. Pour 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. De plus, même pour un processus privilégié attr->mq_maxmsg ne peut pas excéder la limite HARD_MAX. (Voir mq_overview(7) pour les détails sur ces limites.) |
|
EEXIST |
O_CREAT et O_EXCL était tous les deux spécifiés dans oflag, mais une file du nom de name existe déjà . |
|
EMFILE |
Le processus a déjà le nombre maximum de fichiers et de files de messages ouverts. |
ENAMETOOLONG |
name est trop long. |
ENFILE |
La limite système du nombre total de fichiers et fils de messages ouverts a été atteinte. |
|
ENOENT |
L’attribut O_CREAT n’était pas spécifié dans oflag, et aucune file du nom de name n’existe. |
|
ENOMEM |
Mémoire insuffisante. |
|
ENOSPC |
Espace insuffisant pour la création d’une nouvellle file de messages. C’est dans doute parce que la limite queues_max a été atteinte ; voir mq_overview(7). |
POSIX.1-2001. |
Dans les noyaux précédant la version 2.6.14, l’umask du processus n’était pas appliqué aux permissions spécifiées dans mode. |
mq_close(3), mq_getattr(3), mq_notify(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7) |
Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 23 juillet 2006 et révisée le 9 août 2006. L’équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=en man 3 mq_open ». N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. |
mq_open(3) |