Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       msgget - Obtenir un identifiant de file de messages System V

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

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

       msgget() renvoie l'identifiant de la file  de  messages  (un  entier  non  négatif),  s'il
       réussit. En cas d'échec -1 est renvoyé et errno est défini pour indiquer l'erreur.

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.

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       POSIX.1-2001, SVr4.

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

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.

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)

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⟩.