Man page - msgget(2)

Packages contains this manual

Available languages:

en fr es pl ja ru ro

Manual

msgget

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
Linux
NOTES
BOGUES
VOIR AUSSI
TRADUCTION

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 .