Ciao a tutti , sto lavorando con una memoria condivisa tra due processi, ora vi pongo il problema nel migliore dei modi..cosi sentiamo i vostri pareri![]()
ho messo in memoria condivisa una lista utenti e le
tre oggetti di tipo matrix_X in segmenti di memoria diversi(con key diversa).
Es:
Chiave mem.cond per Lista= 15
Chiave mem.cond per Matr_A= 16
Chiave mem.cond per Matr_D= 17
Chiave mem.cond per Matr_M= 18
L'oggetto matrice è cosi composto:
typedef struct mA{
int nRow;
int nCol;
char giorni_mese[100][10];
user* utenti_disp[100][100];
int sommaTotale[100];
}matrix_X;
mentre l'oggetto di tipo user è cosi composto:
typedef struct user_data{
char nome_cognome[30];
char gruppo[4];
char giorni_disp[100][10];
int totDisp;
int last;
int totTurni;
}user;
All'interno delle matirci Mat_A vanno gli user di gruppo A, in quella di tipo M gli user di gruppo M e cosi via.
Nel creare le matrici ho copiato i puntatori agli oggetti di tipo user presenti nella lista utenti nella matrice corrispondente.
Quando mi trovo a dover leggere tali dati da un processo esterno, eseguo l'attach al segmento di memoria condivisa della lista e riesco a leggere correttamente.
Mentre quando cerco di accedere ai dati utente(user) partendo dalla matrice, non riesco in nessun modo ad accedervi (penso per il fatto che sia in una zona di memoria condivisa diversa).
Come posso fare per riuscire ad accedere ai dati utente partendo dalla lista, lasciando tutto in memoria condivisa?
Grazie a tutti in anticipo
Ciao,
Davide