免费注册 查看新帖 |

Chinaunix

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

[C] Unix编程小问题,求程序分析给出过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-11 09:05 |只看该作者 |倒序浏览
两个程序通过共享内存段进行数据交换:
1.如果运行programme1没任何错误,执行N次以后,问每次执行都是在相同的段执行吗?是的话说明理由,不是的话如何修改程序才能使每次在相同段执行?

2.如果运行程序1没任何错误,然后执行程序2,问程序2和程序1是否在相同的数据段执行,是的话说明理由,不是的话如何修改程序才能使他们在相同段执行?

3.假设第二个问修改了程序使之在相同段执行,用IPC_PRIVATE重新生成两个程序的秘钥,此时两程序还在共同段执行与否?


搞不懂,哪位大神能解答下吗?

7dd98d1001e939010e2ff34d79ec54e736d19697.jpg (15.04 KB, 下载次数: 51)

7dd98d1001e939010e2ff34d79ec54e736d19697.jpg

论坛徽章:
5
水瓶座
日期:2013-11-27 23:31:26双鱼座
日期:2014-01-02 15:37:44白羊座
日期:2014-01-07 14:30:09射手座
日期:2014-03-13 17:52:59巨蟹座
日期:2014-04-18 17:43:05
2 [报告]
发表于 2013-12-12 15:02 |只看该作者
IPC_PRIVATE你生成的key值是你控制不了的,系统随机生成,两个程序获取到的key值不一样,当然就取不到相同的地址拉。

论坛徽章:
0
3 [报告]
发表于 2013-12-12 17:59 |只看该作者
嗯,第三体你说的很正确,,今天和同学讨论也和你一样的观点,前两题你怎么看,

chaohona 发表于 2013-12-12 15:02
IPC_PRIVATE你生成的key值是你控制不了的,系统随机生成,两个程序获取到的key值不一样,当然就取不到相同的 ...

论坛徽章:
5
水瓶座
日期:2013-11-27 23:31:26双鱼座
日期:2014-01-02 15:37:44白羊座
日期:2014-01-07 14:30:09射手座
日期:2014-03-13 17:52:59巨蟹座
日期:2014-04-18 17:43:05
4 [报告]
发表于 2013-12-13 00:02 |只看该作者
本帖最后由 chaohona 于 2013-12-13 00:03 编辑

你明白EXCL和CREATE参数的意思,你就不用这个问题了。

论坛徽章:
1
天秤座
日期:2014-03-25 15:12:56
5 [报告]
发表于 2013-12-13 10:31 |只看该作者
chaohona 发表于 2013-12-13 00:02
你明白EXCL和CREATE参数的意思,你就不用这个问题了。


每次的运行都是一个新的进程,并且运行方式是一样的

论坛徽章:
5
水瓶座
日期:2013-11-27 23:31:26双鱼座
日期:2014-01-02 15:37:44白羊座
日期:2014-01-07 14:30:09射手座
日期:2014-03-13 17:52:59巨蟹座
日期:2014-04-18 17:43:05
6 [报告]
发表于 2013-12-13 10:37 |只看该作者
那么你就需要知道ftok是怎么获取key值的了。
The ftok() function will return the same key value  for  all
     paths  that name the same file, when called with the same id
     value, and will return different key values when called with
     different id values.

论坛徽章:
5
水瓶座
日期:2013-11-27 23:31:26双鱼座
日期:2014-01-02 15:37:44白羊座
日期:2014-01-07 14:30:09射手座
日期:2014-03-13 17:52:59巨蟹座
日期:2014-04-18 17:43:05
7 [报告]
发表于 2013-12-13 10:39 |只看该作者
If the file named by path is removed while still referred to
     by a key, a call to ftok() with the same path and id returns
     an error. If the same file is  recreated,  then  a  call  to
     ftok()  with the same path and id is likely to return a dif-
     ferent key.

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
8 [报告]
发表于 2013-12-13 12:15 |只看该作者
回复 7# chaohona
按照文档的意思,1中可能在同一段执行,也可能不在同一段执行。2中肯定不在同一段执行。
不理解program1中open时O_EXCL的作用?

   

论坛徽章:
0
9 [报告]
发表于 2013-12-13 13:51 |只看该作者
继续第一个问,关键是每次取值以后下面直接来个unlink,,
在运行的话,搞不懂是不是还在同一段了,没unlink很清楚,来这个不是很确定的

chaohona 发表于 2013-12-13 10:39
If the file named by path is removed while still referred to
     by a key, a call to ftok() with t ...

论坛徽章:
0
10 [报告]
发表于 2013-12-13 13:53 |只看该作者
progarmme1 的open excl作用是万一文件存在就报-1信息把,,大概是这样,但是下面程序结尾已经unlink了,,,





井蛙夏虫 发表于 2013-12-13 12:15
回复 7# chaohona
按照文档的意思,1中可能在同一段执行,也可能不在同一段执行。2中肯定不在同一段执行。 ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP