数组共享c语言,c – 将写入整数数组读入共享内存

以下是我的共享内存的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;

}

在我尝试读取时写入内存后,输出是垃圾值.有人可以解释我做错了什么(输出显示全部为零)谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值