免费注册 查看新帖 |

Chinaunix

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

关于SystemV 共享存储的问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-15 13:42 |只看该作者 |正序浏览
小弟初学编程,有一个关于system V Share memory的疑问,在此向大虾请教。

我想测试我最大能得到多少个shm的id.写了如下程式。


  1. #include <sys/types.h>;
  2. #include <unistd.h>;
  3. #include <sys/ipc.h>;
  4. #include <sys/shm.h>;
  5. #define MAXLIST 1000
  6. int shmlist[MAXLIST];
  7. int main(int argc,char **argv)
  8. {
  9.         int i,n;
  10.         for(i=0;i<MAXLIST;i++){
  11.                 if((shmlist[i]=shmget(IPC_PRIVATE,1,IPC_CREAT))<0)
  12.                         break;
  13.         }
  14.         printf("Your Limits is:%d \n",i);
  15.         for(n=0;n<i;n++){
  16.                 if(shmctl(shmlist[n],IPC_RMID,NULL)<0)
  17.                         errx(1,"error when remove shm id.\n");
  18.         }
  19.         exit(0);
  20. }
复制代码

编译运行如下


  1. $ sysctl kern.ipc.shmmni kern.ipc.shmseg //查看系统限制值
  2. kern.ipc.shmmni: 192
  3. kern.ipc.shmseg: 128
  4. $ ./a.out
  5. Your Limits is:189  //程序的输出值
  6. $
复制代码


为什么我得到的限制是192-4(另外3个为其它程式占用),而不是 128-4 ?[/code]

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

关于SystemV 共享存储的问题.

对于楼主的这个问题,我当时在hp-11上做了测试,但是测试测结果无法回答楼主的问题(因为楼主的系统我没有接触过)。的确,在unix各个主流系统中,不管是shm这一块,很多地方实现的差异较大,我觉得楼主最后贴出了部分代码证明了对于shmat的限制(这个限制也是对于进程能够连接的共享内存段的限制),对于整个shm的大小应该(为了不误导人,还是用应该修饰)有限制的,这种限制或许不在那段代码中(例如可能在像核心申请shm的时候做了限制)。我觉得只要大家相互引导,相互探讨,问题还会逐步的明了的,如果大家都有兴趣,并且能够坚持的话,当然也要有时间。

在unix中的很多的东西,谁是真正的标准,谁是圣经!答案是没有。技术总在进步,每个厂商都是在遵循一定标准的前提下开发。如果我们能去对一些核心的东西做讨论,本身意味着论坛中的朋友在进步,既然是讨论,就不能保证所说的每一句话都必须天衣无缝,如果非要这样的话,我建议大家还是自己看书好了。毕竟一本好书能够出版是经过严格审批的!

论坛徽章:
0
18 [报告]
发表于 2003-05-18 16:32 |只看该作者

关于SystemV 共享存储的问题.

是啊
但是觉得flw兄也是喜欢论坛的

一起努力吧

这里有时许多人都是新人,上来就要帮助,如果能及时帮助,能够多引导一下他们就会觉得这里很不错,然后会留下来,并能吸引更多的人来到这
想把它做成一个高手集中的论坛的路还是比较远
一步一步来吧

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2003-05-18 15:45 |只看该作者

关于SystemV 共享存储的问题.

扯远了!扯远了!

论坛徽章:
0
16 [报告]
发表于 2003-05-18 15:43 |只看该作者

关于SystemV 共享存储的问题.

论坛只是讨论的

不是课堂老师上课
当然如果有高手讲那也很不错
大家都是在这里讨论中进步的
如果只是怕误导,
那么就没有办法交流自己思想
也不知道自己想的对不对

再说每个人精通的只是某几方面的知识
不可能全部精通,所以出错也是可能的
当然不是说我精通,我也是和大家一起学的
希望在这里和大家一起进步

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
15 [报告]
发表于 2003-05-18 15:37 |只看该作者

关于SystemV 共享存储的问题.

原帖由 "无双" 发表:
如果这里问题都得不到解决的话
那么就没有什么整理的了

说得好!(鼓掌!热烈鼓掌!)
-------- 不过,如果问题不但没有解决,反而把一个错误的答案当成是正确的而“吸取”了,那岂不是很糟糕?

论坛徽章:
0
14 [报告]
发表于 2003-05-18 15:29 |只看该作者

关于SystemV 共享存储的问题.

如果这里问题都得不到解决的话
那么就没有什么整理的了

所以版主还是要能帮助别人解决问题
当然最重要的是管理好论坛

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2003-05-18 15:11 |只看该作者

关于SystemV 共享存储的问题.

少说为佳,言多必失。
版主的主要功能不在于回答问题,而是整理帖子,管理论坛。回答问题交给我这种人好了,我一向是“不懂的就不发言”,省的误人子弟。

论坛徽章:
0
12 [报告]
发表于 2003-05-18 14:44 |只看该作者

关于SystemV 共享存储的问题.

以后如果只是我的想法上加”我认为“
这样应该不会误导大家了

论坛徽章:
0
11 [报告]
发表于 2003-05-18 14:25 |只看该作者

关于SystemV 共享存储的问题.

往往楼上找出

我的知识面并不是很广,什么都能懂,所以回答总会有错误的地方
另外我有我自己的事要做,所以也不可能对每一个问题进行深入研究,很多如果不懂的话直接找google然后把看来比较好的回答copy就是
所以很多回答只能说是我的想法,或说是我的认为
而不是正确的想法

同时也谢谢你把正确结果贴到这里来
让以后的人能够理解这个问题的真正原因
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP