我想在兩個進程之間創建共享內存。我用fork()。一個孩子試圖改變這個共享記憶,母親創造另一個孩子,所以新孩子試圖改變相同的記憶。這是我在C編程中的代碼。 (ubuntu)用於分叉的共享內存
mylist ch=NUL;
f=fork();
if(!f){
pba=shmget(KEYSHM,sizeof(char),0); /*created shared memory*/
ch=(mylist *) shmat(pba,0,0);
ch->name=ugur;
ch->surname=cedric;
...do something...
}
else{
if(ch)
printf("this is top of mylist %s"ch->name);
.......do something
}
它從不寫ch-> name。爲什麼?我創建了一個共享內存。爲什麼父進程無法讀取?