如果我的可执行文件调用dlopen
来加载库,但忽略调用dlclose
,库将保持加载状态,直到进程退出并且操作系统强制它卸载。
如果我加载a.so
加载b.so
,然后在a.so
上调用dlclose
,操作系统是否也会卸载b.so
?
这与使用Microsoft等效的类似场景相比如何,LoadLibraryEx
?
应用程序只需要担心应用程序直接加载的内容。如果你加载a.so
,你需要关心的只是卸载a.so
。
如果a.so
拒绝卸载b.so
,那是a.so
的问题,您的应用程序对此概不负责。a.so
的作者需要齐心协力,解决库的问题。