免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3261 | 回复: 7
打印 上一主题 下一主题

请教各位一个进程读取共享内存的问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-01 09:50 |只看该作者 |倒序浏览
进程1负责创建共享内存,进程2负责读取进程1创建的共享内存.
问题:
进程1创建共享内存区域之后在该区域中填写了若干个指向其他区域的内存地址.
那么在进程2中访问该共享内存中所保存的地址所指向的数据时,是否可以根据内存中保存的地址直接访问,还是要加偏移地址?具体应该如何操作呢?

论坛徽章:
0
2 [报告]
发表于 2003-12-01 10:55 |只看该作者

请教各位一个进程读取共享内存的问题.

shmat怎么写的呢?

论坛徽章:
0
3 [报告]
发表于 2003-12-01 11:01 |只看该作者

请教各位一个进程读取共享内存的问题.

最好先看看这两个进程访问的共享内存是不是同一个,是在代码的哪儿创建的共享内存,如果只是读、不写的话,确实读的同一个共享内存,是不会有这种情况发生的

论坛徽章:
0
4 [报告]
发表于 2003-12-01 11:19 |只看该作者

请教各位一个进程读取共享内存的问题.

目前问题定位到:
我的共享内存区域头存放的是内存索引,有其他的子内存区域的地址和记录个数,现在的问题是:
第2个进程读取内存索引中的记录个数(即:数值)没有问题,但有的时候读内存索引中存放的地址所指向的内存区域中的数据就出现以上描述的问题,是什么原因呢?是指针偏移了吗??????

论坛徽章:
0
5 [报告]
发表于 2003-12-01 12:15 |只看该作者

请教各位一个进程读取共享内存的问题.

另:我的共享内存没有重新创建,但不同的进程调用shmat返回共享内存的首地址为什么不同呢?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-12-01 12:19 |只看该作者

请教各位一个进程读取共享内存的问题.

shm那个区域有东西吗?
地址有小吗?

论坛徽章:
0
7 [报告]
发表于 2003-12-01 12:25 |只看该作者

请教各位一个进程读取共享内存的问题.

是的,变小了。
内存中的数据我没有修改,每一次shmat的地址都不同,第一次:
*getBillAddrptr_shmat=fe620000
第二次:
*getBillAddrptr_shmat=fe610000
如果地址变了的话那么读取访问不是有问题吗?为什么会变呢?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-12-01 12:49 |只看该作者

请教各位一个进程读取共享内存的问题.

地址无效,看来你第二次读取的时候,shmaddr已经被更改了,只能察看你的程序了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP