Salve a tutti sto provando ad usare la memoria condivisa tra processi però ancora prima di creare i processi sto riscontrando problemi nella modifica dei dati sulla struttura condivisa:
Un'altra domanda è: "Se nel segmento s1 condivido una stringa ed una struttura, come faccio ad accedere ad entrambe avendo il puntatore alla zona di memoria e non rispettivamente un puntatore alla stringa ed uno alla struttura?codice:#include <stdio.h> #include <stdlib.h> #include <sys/ipc.h> #include <sys/shm.h> int s1; struct segment{ int mtype; char text[128]; }; int main(){ key_t key = ftok("password.txt",1); if(key==-1){ printf("Error key\n"); exit(0); } s1 = shmget(key,sizeof(struct segment),IPC_CREAT); if(s1==-1){ printf("Error s1\n"); exit(0); } struct segment* data = (struct segment*)shmat(s1, (void*)0, 0); /*qui sulla prossima assegnazione mi da errore e penso sia dovuto al fatto che sto puntando ad una zona di memoria della dimensione della struttura ma che di fatto ancora non contiene una struttura dichiarata e quindi non posso farlo però non so come condividere in memoria una struttura dichiarata*/ data->mtype=1; return 0; }

Rispondi quotando