Bonjour à tous,
je travaille sous WinXPSP3 / MS Visual Studio Express Edition 2008 / langage C.
J'ai créé un pointeur *pTab sur un tableau de structure FLOW_UNIT_s de taille N.
La structure FLOW_UNIT_s est décrite ci - dessous.
La zone mémoire pointée par *pTab est actualisée en temps réel par un thread1. Le thread1 écrit dans *pTab, attend 40 ms, écrit dans *p(Tab+1), attend 40 ms, .... jusqu'à *p(Tab+N-1).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 typedef struct FLOW_UNIT_s{ time_t tF; int inc; int cnt; double volt; }FLOW_UNIT_s;
Quand on arrive au Nième élément, un autre thread2 doit faire une copie de ce qui est contenu à l'instant t dans la zone mémoire pointée par *pTab (pendant ce temps, le thread1 continue à faire son travail, c'est à dire commence à écraser *pTab, *(pTab+1), ...).
Ma question est la suivante : comment puis-je faire une copie du contenu de la zone mémoire pointée par *pTab à un instant donné dans une variable temporaire alors que le thread1 continue sa mise à jour ?
J'ai défini un nouveau pointeur *pTab_temp = *pTab. Mais forcément la copie est actualisée en même temps que *pTab.
Je suis preneur des idées que cette discussion vous inspirera.
Merci d'avance.
LePapat
Partager