社区
Linux/Unix社区
帖子详情
dlopen/dlclose 计数问题。。。
你我他111
2008-04-13 11:06:36
有个共享库libX;有两个应用appA, appB. appA先运行,然后dlopen libX,且一直保持运行状态。然后appB开始运行,dlopen libB, 这时候对appB来说 libX的引用计数是几?
如果引用计数是对当前进程来说的,计数应该是1。如果整个系统只有一个对libX的计数,那么应该是2,因为appA也dlopen了。哪位大虾谈谈
...全文
208
3
打赏
收藏
dlopen/dlclose 计数问题。。。
有个共享库libX;有两个应用appA, appB. appA先运行,然后dlopen libX,且一直保持运行状态。然后appB开始运行,dlopen libB, 这时候对appB来说 libX的引用计数是几? 如果引用计数是对当前进程来说的,计数应该是1。如果整个系统只有一个对libX的计数,那么应该是2,因为appA也dlopen了。哪位大虾谈谈
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
你我他111
2008-04-14
打赏
举报
回复
多谢cceczjxy的回答。。。能再详细些么?这两种计数分别是干什么用的?哪个计数决定是否要对libB卸载?
cceczjxy
2008-04-14
打赏
举报
回复
对文件有个计数,它的计数是2
进程内有个计数,它的计数是1,
kabar_strider
2008-04-14
打赏
举报
回复
进程内的记数在进程退出的时候,判断是否有未释放的共享库,如果有未释放的,则释放。
文件的计数是调用dlclose的时候,判断是否从内存中解除映射。
可参考这两个变量:link_map.l_opencount,link_map.l_loader。
时间短暂,没仔细查找具体改变这两个变量的代码的具体位置,不对之处请指正。
加载动态链接库——
dlopen
dlsym
dlclose
DLOPEN
DLMOPEN
DLCLOSE
NAME
dlclose
,
dlopen
, dlmopen - 打开/关闭共享对象 SYNOPSIS #include <dlfcn.h> void *
dlopen
(const char *filename, int flags); int
dlclose
(void *handle); #...
LINUX下动态链接库的使用(
dlopen
/dlsym/
dlclose
/dlerror)
dlopen
功能:打开一个动态链接库 包含头文件:#include <dlfcn.h> 函数定义:void *
dlopen
( const char * pathname, int mode );...使用
dlclose
()来卸载打开的库。 mode: RTLD_LAZY ...
linux关于动态链接库的操作
dlopen
,
dlclose
,dlsym
linux关于动态链接库的操作
dlopen
,
dlclose
,dlsym #include <dlfcn.h>定义了关于动态链接一些操作,本文归纳了百度百科的内容。 文章目录linux关于动态链接库的操作
dlopen
,
dlclose
,dlsym1、
dlopen
2、 ...
linux下so库的加载和使用(
dlopen
/dlsym/
dlclose
)
转载自:... 一.... 像window调用库文件一样,在linux下,也有相应的API因为加载库文件而存在。它们主要是以下几个函数: ...
dlopen
打开对象文件,使其可被程序访问 dls
LINUX下动态链接库的使用(
dlopen
/dlsym/
dlclose
/dlerror)
dlopen
基本定义 功能:打开一个动态链接库 包含头文件:#include <...使用
dlclose
()来卸载打开的库。 mode:分为这两种 RTLD_LAZY 暂缓决定,等有需要时再解出符号 RTLD_NOW 立即决定,返回前解除所...
Linux/Unix社区
23,125
社区成员
74,509
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章