Bonjour,
Je suis en train de travailler sur les files de messages sous Linux (IPC) et je suis confronté à un problème.
Voilà j'arrive tout a fait a mettre des messages dans ma file de messages et à les retirer. En fin de compte je manipule les principales fonctions des ipc (msgrcv, msgctrl, msgget etc...) correctement. Seulement je voudrais aller plus loin et c'est là que je bloc. J'aimerai lire un message sans pour autant qu'il soit retiré de la file de messages. Car msgrcv lit un message mais le retire en même temps ! Et ce n'est vraiment pas ce que je veux.
Si quelqu'un sais comment lire un ou plusieurs message(s) dans une file de messages sans pour autant l'effacer sous linux merci de m'aider !
Merci BEAUCOUP d'avance!
PS : J'ai eu beau rechercher sur le net je retombe toujours sur les mêmes pages de manuel de Christophe Blaess faites en 1997 et mises à jour en mai 2006...
# j'ai trouvé ca :
Posté par NeoX . Évalué à 1.
mais ca ne parle pas de lire sans effacer les messages...
en meme temps ce n'est peut-etre pas l'interet des IPC que de stocker des messages...
le but etant il me semble de pouvoir faire communiquer des process, donc, à moins de vouloir transmettre l'info à plusieurs process, je ne vois pas d'ineteret à conserver le message.
quand bien meme ce serait pour transmettre à plusieurs process, il vaut mieux envoyer un message à chaque process...
[^] # Re: j'ai trouvé ca : { memoire partagée et sémaphore } (souvenirs...)
Posté par Steve Azriel . Évalué à 2.
Pour que plusieurs processus aient accès au même message, tu peux aussi envisager un modèle:
¤ 1 Ecrivain (dépose le message sous forme de mémoire partagée IPC SHMEM)
¤ N Lecteurs (lecture conditionnée via verrou/semaphore IPC SHSEM)
¤ 1 Nettoyeur (le dernier lecteur ou l'écrivain ou un autre ^__^) pour faire plus "propre"
Bon courage !
Cdlt,
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.