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

时间:2015-01-14 20:21:44

标签: c++ dlopen dynamic-loading

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

如果我加载加载a.so的{​​{1}},然后在b.so上调用dlclose,操作系统是否也会卸载a.so

这与使用Microsoft等效的LoadLibraryEx

的类似方案相比如何?

1 个答案:

答案 0 :(得分:3)

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

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