|
Problemas com memória partilhada e listas
Oi, eu preciso colocar em memória partilhada uma lista feita com objeto desta estrutura:
Código:
typedef struct Obj{
char objname[20];
struct Obj *nextObj;
}Object
I've cheia com a minha lista (por exemplo) 10 elementos, mas quando tento colocá-la na memória compartilhada para ser lido por outro processo i get segmentation fault recorde após a primeira leitura ..
Li em outro thread (aqui -> dinâmica de memória partilhada ), que dá malloc sone com problemas de memória partilhada
Citação:
|
Se você ligou para criar malloc linked_list_header-> ptr, então o endereço devolvido por malloc é privado da convocatória (o processo que solicita malloc) processo. Mesmo com NÓ-> buffer. Você terá que atribuir essas coisas em comum "pela mão" sem chamar malloc.
|
mas eu não entendo o que tenho que fazer agora e como resolver o meu problema.
Tentei partes objeto desta forma:
Código:
Obj *head; //pointer to the head of my FILLED list
int shmid;
Obj *sh;
...
shmid = shmget(SHMKEY,(sizeof(Obj)*10),0666|IPC_CREAT|IPC_EXCL);
...
sh = (Obj *)shmat(shmid, 0, 0666);
...
*sh = *head;
Provavelmente eu perder alguma coisa ou talvez eu estou totalmente errado ... como posso atribuir Obj em comum "pela mão" sem pôr malloc?
Obrigado pelo vosso apoio, melhores cumprimentos.
|