以下是我的共享内存的READER-WRITER代码.
阅读代码 –
int main(){
int shmid;
int *array;
int count = 5;
int i = 0;
key_t key = 12345;
shmid = shmget(key, count*sizeof(int), IPC_EXCL);
array = shmat(shmid, 0, SHM_RDONLY);
for(i=0; i<5; i++)
{
printf("
%d---
", array[i] );
}
printf("
Read to memory succesful--
");
shmdt((void *) array);
return 0;
}
编写代码 –
int main()
{
int shmid;
int *array;
int count = 5;
int i = 0;
int SizeMem;
key_t key = 12345;
SizeMem = sizeof(*array)*count;
shmid = shmget(key, count*sizeof(int), IPC_CREAT);
array = (int *)shmat(shmid, 0, 0);
array = malloc(sizeof(int)*count);
for(i=0; i<5; i++)
{
array[i] = i;
}
for(i=0; i
{
printf("
%d---
", array[i]);
}
printf("
Writting to memory succesful--
");
shmdt((void *) array);
return 0;
}
在我尝试读取时写入内存后,输出是垃圾值.有人可以解释我做错了什么(输出显示全部为零)谢谢