繁体   English   中英

如果从dlopen'd库中调用dlopen(),是否存在负载泄漏?

Is there a load leak if dlopen() is called from a dlopen'd library?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如果我的可执行文件调用dlopen来加载库但忽略调用dlclose ,则库将保持加载状态,直到进程退出并且操作系统强制它卸载。

如果我加载a.so加载b.so ,然后在a.so上调用dlclose ,操作系统b.so卸载b.so吗?

这与使用Microsoft等效的LoadLibraryEx的类似场景相比如何?

1 个回复

应用程序只需要担心应用程序直接加载的内容。 如果你加载a.so ,你需要关心的是卸载a.so

如果a.so拒绝卸载b.so ,这是一个问题a.so ,您的应用程序是不负责。 a.so的作者需要一起行动并解决他们的库的问题。

3 [macosx] dlopen是否调用打开和读取功能?

我已经在MacOS X和其他一些函数中拦截了(插入)dlopen函数。 我看到了我的应用程序如何在日志中调用dlopen,但是在对动态库进行倾斜处理之后,没有找到与打开/读取功能相关的任何内容。 系统如何访问和读取动态库文件? 我看过dyld的源代码,它确实在dlopen上调用了open ...

4 dlopen是否创建多个库实例?

在网上搜索后似乎找不到答案。 第一次使用dlopen时,似乎比之后要花费更多的时间,包括从多个程序实例运行它的时间。 dlopen是否会一次将so加载到内存中并让OS保存它,以便随后的任何调用,甚至从程序的另一个实例指向内存中的同一位置? 因此,基本上,一个运行一个库的程序的3 ...

6 在ios上调用dlopen

这是一个备受关注的话题,尤其是最近的话题。 希望这不是一个骗局,因为我已经讨论了所有其他的SO问题。 我对这是否合法不感兴趣。 虽然你不能100%清楚你是否可以在iOS8上使用dylib自由地做你想要的东西,但是它似乎允许一些动态加载(参见例如你可以为iOS构建动态库并在运行时加载它们 ...

7 从gdb调用dlopen

我想从gdb加载共享库(.so),我发现了以下命令: 但这不起作用,我将程序与-ldl链接。 我得到的错误是: 我错过了什么 ? ...

8 dlopen等待futex调用

我尝试使用dlopen加载libmysqlcppconn.so ,但是程序等待对该函数的调用。 Strace向我显示: pid 12122的轨迹显示: 但是当我在NetBeans中将我的代码静态链接到libmysqlcppconn.so ,它可以正常工作。 到底是怎么 ...

2012-06-18 15:59:04 1 192   dlopen
9 dlopen()是否设置errno?

一切都在标题中。 手册页没有说什么。 某些google报告说有人在dlopen之后检查errno,但结果很少。 该函数确实返回成功/不成功值,但是应该如何找出失败原因。 那么dlopen()设置errno? 那么在哪里定义了不同的errno值? 如果不是,应该使用什么检查导致故障 ...

10 dlopen 用于不同的库? C

嗨,我正在开发一个像这样工作的程序: ./Filters File [filters...] 过滤器可以是很多我想自己创建并将它们应用到文件的 .so 库。 但是所有的库都有相同的函数process(a1,a2,a3) ,只是它们每个都做不同的事情。 我正在尝试像这样使用它: 但是当我尝试 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM