|
|||||||
|
|
MSGGETSection: Manuel du programmeur Linux (2)Updated: 18 juillet 2003 Index Return to Main Contents NOMmsgget - Obtenir un identificateur de file de messages.SYNOPSIS#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgget ( key_t key, int msgflg ); DESCRIPTIONCette fonction renvoie l'identificateur de la file de messages associée à la clé key. Une nouvelle file de messages est créée si key a la valeur IPC_PRIVATE ou si aucune file de message n'est associée à key, et si la valeur IPC_CREAT a été introduite dans msgflg (c'est à dire msgflg&IPC_CREAT non nul). La présence des champs IPC_CREAT et IPC_EXCL dans msgflg joue le même rôle, par rapport à l'existence de la file de messages, que la présence des champs O_CREAT et O_EXCL dans l'argument mode de l'appel système open(2) : La fonction msgget échouera si msgflg indique à la fois IPC_CREAT et IPC_EXCL et si une file de messages existe déjà associée à key.Lors de la création, les 9 bits de poids faibles de l'argument msgflg définissent les permissions d'accès à la file de message (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 dans les appels open(2) ou creat(2) (bien que la permission d'exécution ne soit pas utilisée). Pendant la création, l'appel système initialise la structure système msqid_ds de la file de messages comme suit :
Si la file de message 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ÉEmsgget renvoie l'identificateur 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
NOTESIPC_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
BOGUESL'utilisation de IPC_PRIVATE n'empêche pas les autres processus d'avoir accès à la file de messages allouée. Le nom IPC_PRIVATE a été mal choisi, ICP_NEW aurait été mieux.CONFORMITÉSVr4, SVID. SVr4 ne documente pas le code d'erreur EIDRM. Jusqu'à la version 2.3.20, Linux renvoyait EIDRM pour un msgget sur une file de messages prête à être supprimée.VOIR AUSSIftok(3), ipc(5), msgctl(2), msgsnd(2), msgrcv(2)TRADUCTIONChristophe Blaess, 1996-2003.
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2009 Linuxinfor.com. No rights reserved. |