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).
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> ».