Bonjour,

Je suis occupée de réaliser une application multi thread du type producteur-consommateur avec un buffer en mémoire partagée entre les threads producteurs et les threads consommateurs.
J'ai quelques soucis avec l'écriture en mémoire partagée:
Je crée mon segment de mémoire partagée:
Code :

1. int buffer;
2. buffer = shmget(IPC_PRIVATE, n*sizeof(struct MyStruct, IPC_CREAT|IPC_EXCL|00660); //n est défini plus faut et fixe !



pour chaque thread qui veut faire une opération de lecture ou d'écriture, j'attache le segment de mémoire partagée:
Code :

1. struct MyStruct *memo;
2. memo = (struct Vote *)shmat(buffer, 0, SHM_W); //pour l'écriture
3. struct MyStruct dataToAdd;
4. //initialisation de dataToAdd
5. //et puis la j'veux mettre dataToAdd en mémoire partagée



Vu que je veux faire un buffer, je veux utilisé ma mémoire partagée comme un tableau de structure ...
J'ai un int qui indique l'index du tableau auquel il faut écrire .
Comment faire???

Merci d'avance