2 つのプロセス間で共有メモリを作成したい。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 とは決して書きません。なぜ?共有メモリを作成しました。親プロセスが読み取れないのはなぜですか?