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 :
- int buffer;
- 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 :
- struct MyStruct *memo;
- memo = (struct Vote *)shmat(buffer, 0, SHM_W); //pour l'écriture
- struct MyStruct dataToAdd;
- //initialisation de dataToAdd
- //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