Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       msgget - Obtenir un identifiant de file de messages System V

SYNOPSIS

       #include <sys/types.h>
       #include <sys/ipc.h>
       #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 clé key. 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. Ceci est similaire au comportement  de  open(2)  avec  la
       combinaison O_CREAT | O_EXCL.

       Lors de la création, les bits de poids faibles de l'argument msgflg définissent les permissions d'accès à
       la file de messages (pour le propriétaire, le groupe, et les autres) avec  le  même  format  et  la  même
       signification que les permissions d'accès (mode) dans les appels open(2). (Les permissions d'exécution ne
       sont pas utilisées).

       Pendant la création, l'appel système initialise la structure système msqid_ds (consultez msgctl(2)) de la
       file de messages 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  faibles  de  msgflg  sont  copiés  dans  les  9  bits de poids faibles 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 positif), s'il réussit. En cas d'échec
       -1 est renvoyé et errno contient le code d'erreur.

ERREURS

       En cas d'échec, errno prend l'une des valeurs suivantes :

       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.

       EEXIST Une  file  de  messages  existe  associée  à  la  clé key et msgflg réclame à la fois IPC_CREAT et
              IPC_EXCL.

       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  les  nouvelles
              structures de données.

       ENOSPC Le nombre maximal de files de messages sur le système (MSGMNI) est atteint.

CONFORMITÉ

       SVr4, POSIX.1-2001.

NOTES

       L'inclusion  de  <sys/types.h>  et <sys/ipc.h> n'est pas nécessaire sous Linux et n'est exigée par aucune
       version de POSIX. Cependant, certaines implémentations anciennes nécessitent l'inclusion de ces  fichiers
       d'en-tête,  et  le  SVID documente aussi leur inclusion. Les applications ayant pour but d'être portables
       pourraient inclure ces fichiers d'en-tête.

       IPC_PRIVATE n'est pas destiné au champ msgflg mais est du  type  key_t.  Si  cette  valeur  spéciale  est
       fournie  à  la  place de key, l'appel système ignorera tout sauf les 9 bits de poids faibles de msgflg et
       créera une nouvelle file de messages.

       La limite système concernant les files de messages et affectant msgget() est

       MSGMNI Nombre maximal de files de messages sur le système (sous Linux, cette limite peut  être  consultée
              et modifiée grâce au fichier /proc/sys/kernel/msgmni).

   Notes sur 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), svipc(7)

COLOPHON

       Cette page fait partie de la publication 3.57 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).  Julien  Cristau  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> ».