miouxmioux
Messages postés2Date d'inscriptionmardi 22 décembre 2009StatutMembreDernière intervention24 décembre 2009
-
22 déc. 2009 à 11:33
miouxmioux
Messages postés2Date d'inscriptionmardi 22 décembre 2009StatutMembreDernière intervention24 décembre 2009
-
24 déc. 2009 à 10:38
Bonjour à tous,
Je travaille en ce moment avec les ipc, et plus spécialement avec les files de messages.
J'ai pu voir que l'on pouvait récuperer le pid du dernier processus qui envoi un message et celui du dernier qui a lu un message.
Je voulais savoir si c'était possible d'avoir les pid de tous les messages qui sont stockés dans une files de messages?
En plus clair (je sais je m'explique mal ), ca donne : j'ai une file de messages ou j'ai plusieurs messages qui sont stockés (par exemple 10), la commande ipcs -p (ou dans le code l element msg_lspid de la structure msqid_ds) me donne le pid du dernier processus qui m'a envoyé un message. Et je voudrai avoir les pid des processus des 9 premiers messages. Est ce possible?
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 23 déc. 2009 à 23:00
Salut,
Hm... de mémoire, je n'ai jamais utilisé ce système.
Ne pourrais-tu pas essayer de rentrer le pid du processus écrivain directement dans la structure envoyée par le message ?
Du genre :
typedef struct {
long type; /* Type du message */
pid_t pid; /* PID de l'écrivain */
char *donnees; /* Tes données, je ne les connais pas */
} TMsg;
...
TMsg msg;
msg.pid=getpid();
msgsnd(file,&msg,sizeof(TMsg)-sizeof(long),0);
Je dis peut-être une annerie, dans ce cas j'ai mal saisi ton problème.
Bonne chance.
miouxmioux
Messages postés2Date d'inscriptionmardi 22 décembre 2009StatutMembreDernière intervention24 décembre 2009 24 déc. 2009 à 10:38
Merci pour ta réponse uaip.
En effet ce que tu me propose est une solution, mais le problème, c'est qu'il y a déjà en place tout pleins de processus qui communique par cette file de messages, et donc je ne doit pas toucher à la structure des messages qui sont envoyés. Et malheureusement, il n'a pas été prévu de mettre le pid dedans.
Je dois donc trouver un autre moyen. Mais je crois que ce n'est pas possible d'avoir les pids de tous ces messages