Information ipc

miouxmioux Messages postés 2 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 24 décembre 2009 - 22 déc. 2009 à 11:33
miouxmioux Messages postés 2 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 24 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?

Bonne journée à tous

2 réponses

uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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.

Cordialement, uaip.
0
miouxmioux Messages postés 2 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 24 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

encore merci

Bonne fêtes à tous
0
Rejoignez-nous