.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2006 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH mq_open 3 "15 décembre 2022" "Pages du manuel de Linux 6.03" .SH NOM mq_open \- Ouvrir une file de messages .SH BIBLIOTHÈQUE Bibliothèque de temps réel (\fIlibrt\fP, \fI\-lrt\fP) .SH SYNOPSIS .nf \fB#include \fP /* Pour les constantes O_* */ \fB#include \fP /* Pour les constantes des modes */ \fB#include \fP .PP \fBmqd_t mq_open(const char *\fP\fInom\fP\fB, int \fP\fIoflag\fP\fB);\fP \fBmqd_t mq_open(const char *\fP\fInom\fP\fB, int \fP\fIoflag\fP\fB, mode_t \fP\fImode\fP\fB,\fP \fB struct mq_attr *\fP\fIattr\fP\fB);\fP .fi .SH DESCRIPTION La fonction \fBmq_open\fP() crée une nouvelle file de messages POSIX, ou ouvre une file de messages existante. La file est identifiée par \fInom\fP. Pour plus de détails sur la construction de \fInom\fP, consulter \fBmq_overview\fP(7). .PP L'argument \fIoflag\fP spécifie les drapeaux qui contrôlent l'opération d'appel (les définitions des valeurs des attributs peuvent être obtenues en incluant \fI\fP). Un unique drapeau parmi les suivants doit être spécifié dans \fIoflag\fP\ : .TP \fBO_RDONLY\fP Ouvrir une file pour seulement recevoir des messages. .TP \fBO_WRONLY\fP Ouvrir une file pour seulement envoyer des messages. .TP \fBO_RDWR\fP Ouvrir une file pour soit envoyer, soit recevoir des messages. .PP Zéro ou plusieurs des drapeaux suivants peuvent être ajoutés avec un \fIou binaire\fP dans \fIoflag\fP\ : .TP \fBO_CLOEXEC\fP (depuis Linux\ 2.6.26) .\" commit 269f21344b23e552c21c9e2d7ca258479dcd7a0a Régler le drapeau «\ close\-on\-exec\ » pour le descripteur de file de messages. Consulter \fBopen\fP(2) pour une discussion sur l'utilité de ce drapeau. .TP \fBO_CREAT\fP .\" In reality the filesystem IDs are used on Linux. 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. .TP \fBO_EXCL\fP Si \fBO_CREAT\fP est spécifié dans \fIoflag\fP, et si une file de nom \fIname\fP existe déjà, alors elle échouera et renverra le code d'erreur \fBEEXIST\fP. .TP \fBO_NONBLOCK\fP Ouvrir une file en mode non bloquant. Dans de telles circonstances où \fBmq_receive\fP(3) et \fBmq_send\fP(3) devraient être normalement bloquantes, ces fonctions échoueront avec le code d'erreur \fBEAGAIN\fP. .PP Si \fBO_CREAT\fP est spécifié dans \fIoflag\fP, alors deux arguments additionnels doivent être spécifiés. L'argument \fImode\fP spécifie les permissions de la nouvelle file, comme pour \fBopen\fP(2) (les définitions symboliques des bits de permissions peuvent être obtenues en incluant \fI\fP). La définition des permissions est masquée avec l'«\ umask\ » du processus. .PP Les champs des \fIstruct mq_attr\fP pointés vers \fIattr\fP spécifient le nombre maximal de messages et la taille maximale des messages que la file permettra. Cette structure est définie comme suit\ : .PP .in +4n .EX struct mq_attr { long mq_flags; /* Drapeaux (ignoré pour mq_open()) */ long mq_maxmsg; /* Max. # de messages dans la file */ long mq_msgsize; /* Max de la taille du message (octets) */ long mq_curmsgs; /* # de messages actuellement dans la file */ (ignoré pour mq_open()) */ }; .EE .in .PP Seuls les champs \fImq_maxmsg\fP et \fImq_msgsize\fP sont employés lors de l'appel de \fBmq_open\fP()\ ; les valeurs dans les champs restants sont ignorées. .PP Si \fIattr\fP est NULL, alors la file est créée avec les attributs par défaut définis par l'implémentation. Depuis Linux\ 3.5, deux fichiers de \fI/proc\fP peuvent être utilisés pour contrôler ces valeurs par défaut\ ; consulter \fBmq_overview\fP(7) pour plus de détails. .SH "VALEUR RENVOYÉE" En cas de succès, \fBmq_open\fP() renvoie un descripteur de file de messages à utiliser avec les autres fonctions des files de messages. En cas d'erreur, \fBmq_open\fP() renvoie \fI(mqd_t)\ \-1\fP, avec \fIerrno\fP définie. .SH ERREURS .TP \fBEACCES\fP La file existe mais l'appelant n'a pas les permissions pour l'ouvrir dans le mode spécifié. .TP \fBEACCES\fP .\" Note that this isn't consistent with the same case for sem_open() \fIname\fP contient plus d'un caratère «\ /\ ». .TP \fBEEXIST\fP \fBO_CREAT\fP et \fBO_EXCL\fP sont spécifiés dans \fIoflag\fP, mais une file avec le même nom existe déjà. .TP \fBEINVAL\fP .\" glibc checks whether the name starts with a "/" and if not, .\" gives this error \fInom\fP ne suit pas le format de \fBmq_overview\fP(7). .TP \fBEINVAL\fP \fBO_CREAT\fP était spécifié dans \fIoflag\fP, et \fIattr\fP était non NULL, mais \fIattr\->mq_maxmsg\fP ou \fIattr\->mq_msqsize\fP 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é \fBCAP_SYS_RESOURCE\fP), \fIattr\->mq_maxmsg\fP doit être inférieur ou égal à la limite \fImsg_max\fP, et \fIattr\->mq_msgsize\fP doit être inférieur ou égal à la limite \fImsgsize_max\fP. En plus, même avec un processus privilégié, \fIattr\->mq_maxmsg\fP ne peut pas être plus grand que la limite \fBHARD_MAX\fP. Consulter \fBmq_overview\fP(7) pour les détails sur ces limites. .TP \fBEMFILE\fP La limite par processus du nombre de fichiers ouverts et de descripteurs de file de messages a été atteinte (voir la description de \fBRLIMIT_NOFILE\fP dans \fBgetrlimit\fP(2)). .TP \fBENAMETOOLONG\fP \fInom\fP est trop long. .TP \fBENFILE\fP La limite à l'échelle du système du nombre total de fichiers ouverts et de files de messages a été atteinte. .TP \fBENOENT\fP Le drapeau \fBO_CREAT\fP n'a pas été spécifié dans \fIoflag\fP, et aucune file avec le nom \fIname\fP n'existe. .TP \fBENOENT\fP .\" Note that this isn't consistent with the same case for sem_open() \fIname\fP est juste «\ /\ » suivi d'aucun autre caractère. .TP \fBENOMEM\fP Mémoire insuffisante. .TP \fBENOSPC\fP Pas assez d'espace pour la création de la nouvelle file de messages. Ceci s'est probablement produit car la limite \fIqueues_max\fP a été atteinte\ ; consulter \fBmq_overview\fP(7). .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .ad l .nh .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ \fBmq_open\fP() T} Sécurité des threads MT\-Safe .TE .hy .ad .sp 1 .SH STANDARDS POSIX.1\-2001, POSIX.1\-2008. .SH NOTES .SS "différences entre bibliothèque C et noyau" La fonction de bibliothèque \fBmq_open\fP() est implémentée au\-dessus de l'appel système du même nom. Elle réalise la vérification que le \fInom\fP commence par une barre oblique (/), produisant une erreur \fBEINVAL\fP si ce n'est pas le cas. L'appel système du noyau s'attend à ce que le \fInom\fP ne contienne pas de barre oblique initiale, aussi la fonction de bibliothèque\ C transmet le \fInom\fP sans la barre oblique initiale (par exemple, \fIname+1\fP) à l'appel système.' .SH BOGUES Avant Linux\ 2.6.14, l'«\ umask\ » du processus n'est pas appliqué aux permissions spécifiées par \fImode\fP. .SH "VOIR AUSSI" \fBmq_close\fP(3), \fBmq_getattr\fP(3), \fBmq_notify\fP(3), \fBmq_receive\fP(3), \fBmq_send\fP(3), \fBmq_unlink\fP(3), \fBmq_overview\fP(7) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Pierre Giraud . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .