Provided by: manpages-fr-dev_4.27.0-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 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.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                          msgget(2)