|
Problem med delat minne och listor
Hej, jag måste sätta i delat minne en lista som gjorts av denna struktur:
Kod:
typedef struct Obj{
char objname[20];
struct Obj *nextObj;
}Object
Jag har fyllt min lista med (till exempel) 10 delar, men när jag försöker lägga den i delat minne att läsas av en annan process jag segmentering fel efter första läsa titelinformation ..
Jag har läst i en annan tråd (här -> dynamiskt delat minne ) som malloc ger sone problem med delat minne
Citat:
|
Om du kallas malloc att skapa linked_list_header-> ptr, sedan adressen returneras av malloc är privat för den uppringande (den process som kräver malloc) process. Samma med NOD-> buffert. Du kommer att fördela dessa saker i delad "för hand" utan att malloc.
|
men jag förstår inte vad jag har att göra nu och hur man kan lösa mitt problem.
Jag försökte dela objektet på detta sätt:
Kod:
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;
kanske jag missar något eller kanske jag är helt fel ... hur kan jag fördela Mål i delad "för hand" utan att malloc?
Tack för ert stöd, bästa hälsningar.
|