免费注册 查看新帖 |

Chinaunix

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

[C] 动态库的加载问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-11 14:02 |只看该作者 |倒序浏览
动态库lib1.so 被t1和t2,t3链接
t1,t2,t3都是守护进程,运行在后台。
动态库lib1.so里的函数f1更改后,仅重启t1程序,t2,t3还是继续挂在后台。
经过测试发现t1执行函数f1为更改后的结果,t2和t3执行f1还是更改前的结果。

想知道的是,动态库加载到内存后是每个进程1个副本吗?比如t1,t2,t3分别有3个lib1.so的副本
还是说t1有自己更新后的副本,t2和t3共用更新前的副本?

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
2 [报告]
发表于 2013-01-11 14:12 |只看该作者
更改前后的lib1.so是两个不同的东西

一个so的代码多个进程共用,数据每个进程一份

论坛徽章:
0
3 [报告]
发表于 2013-01-11 14:17 |只看该作者
回复 2# hellioncu


    就是说没有重新加载的t2和t3,共用一个老的代码段
    重新加载后的t1,用的是新的代码段
   
    是不是只有当一个动态库的代码段没有被任何进程在加载,才会从内存中释放?

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
4 [报告]
发表于 2013-01-11 14:21 |只看该作者
莫良23 发表于 2013-01-11 14:17
回复 2# hellioncu


我是这么认为的,但不是十分确定。

论坛徽章:
1
白羊座
日期:2013-09-18 22:02:26
5 [报告]
发表于 2013-01-12 23:46 |只看该作者
我理解。共享对象(so)加载是在进城启动时进行的。在运行过程中不会再进行检查,加载。

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
6 [报告]
发表于 2013-01-13 13:45 |只看该作者
本帖最后由 方兆国 于 2013-01-13 13:46 编辑

回复 1# 莫良23


    意思就是动态链接库在内存中有多份代码段,它被公用的只是硬盘中的静态代码


修改原因:有错别字
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP