Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       msgget - Obtenir un identifiant de file de messages System V

SYNOPSIS

       #include <sys/msg.h>

       int msgget(key_t key, int msgflg);

DESCRIPTION

       L'appel  système msgget() renvoie l'identifiant de la file de messages System V associée à
       la valeur de la clé key. Il peut être utilisé soit pour obtenir l'identifiant  d'une  file
       de  messages  précédemment  créée  (quand  msgflg  vaut  zéro  et  key  n'a  pas la valeur
       IPC_PRIVATE), soit pour créer un nouvel ensemble.

       Une nouvelle file de messages est créée si key a la valeur  IPC_PRIVATE  ou  bien  si  key
       n'est  pas  IPC_PRIVATE,  aucune file de messages n'est associée à key, et IPC_CREAT a été
       introduit dans msgflg.

       Si msgflg indique à la fois IPC_CREAT et  IPC_EXCL  et  une  file  de  messages  est  déjà
       associée  à  key,  msgget()  échoue  en positionnant errno à EEXIST. Cela est similaire au
       comportement de open(2) avec la combinaison O_CREAT | O_EXCL.

       Lors de la création, les bits  de  poids  faible  de  l'argument  msgflg  définissent  les
       permissions  d'accès à la file de messages Ces bits de permission ont le même format et la
       même sémantique que les  permissions  indiquées  pour  l’argument  mode  dans  les  appels
       open(2). (Les permissions d'exécution ne sont pas utilisées).

       Lors  de  la  création  d’une  nouvelle file de messages, sa structure de données associée
       msqid_ds (consultez msgctl(2)) est initialisée comme suit :

       • msg_perm.cuid et msg_perm.uid sont remplis avec l'UID effectif du processus appelant.

       • msg_perm.cgid et msg_perm.gid sont remplis avec le GID effectif du processus appelant.

       • Les 9 bits de poids faible de msgflg sont copiés dans les 9  bits  de  poids  faible  de
         msg_perm.mode.

       • msg_qnum, msg_lspid, msg_lrpid, msg_stime et msg_rtime sont configurés à 0.

       • msg_ctime est rempli avec l'heure actuelle.

       • msg_qbytes est rempli avec la limite système MSGMNB.

       Si  la  file  de  messages  existe  déjà,  les permissions d'accès sont contrôlées, et une
       vérification est faite pour voir si la file est prête à être détruite.

VALEUR RENVOYÉE

       On success, msgget()  returns the message queue identifier  (a  nonnegative  integer).  On
       failure, -1 is returned, and errno is set to indicate the error.

ERREURS

       EACCES Une  file  de messages existe associée à la clé key, mais le processus appelant n'a
              pas de permissions pour accéder à cette file et n'a pas la  capacité  CAP_IPC_OWNER
              dans l'espace de noms utilisateur qui gère son espace de noms IPC.

       EEXIST IPC_CREAT  et  IPC_EXCL  sont  spécifiés  dans  msgflg,  mais  une file de messages
              associée à la clé key existe déjà.

       ENOENT Aucune file de messages n'existe associée à la clé key et msgflg  ne  contient  pas
              IPC_CREAT.

       ENOMEM Le  système  doit créer une file de messages, mais n'a pas assez de mémoire pour la
              nouvelle structure de données.

       ENOSPC Une file de messages doit être créée mais le nombre maximal de  files  de  messages
              sur le système (MSGMNI) est atteint.

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, SVr4.

NOTES

       IPC_PRIVATE  n'est  pas  destiné  au  champ msgflg mais est du type key_t. Si cette valeur
       spéciale est fournie pour key, l'appel système ignorera tout  sauf  les  9 bits  de  poids
       faible de msgflg et créera une nouvelle file de messages (en cas de succès).

       La  limite  système concernant les ressources de files de messages et affectant un appel à
       msgget() est :

       MSGMNI Limite système du nombre de files de messages. Avant  Linux  3.19,  la  valeur  par
              défaut  de  cette  limite  était  calculée  en  utilisant une formule fondée sur la
              mémoire disponible du système. Depuis Linux 3.19,  la  valeur  par  défaut  est  de
              32 000.  Sous  Linux, cette limite peut être consultée et modifiée grâce au fichier
              /proc/sys/kernel/msgmni.

   Notes pour Linux
       Jusqu'à la version 2.3.20, Linux renvoyait EIDRM pour un msgget() sur une file de messages
       prête à être supprimée.

BOGUES

       Le choix du nom IPC_PRIVATE est malheureux, IPC_NEW aurait mieux décrit sa fonction.

VOIR AUSSI

       msgctl(2), msgrcv(2), msgsnd(2), ftok(3), capabilities(7), mq_overview(7), sysvipc(7)

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>  et  Jean-Philippe  MENGUAL
       <jpmengual@debian.org>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.