dlclose一个加载了RTLD_NODELETE的库

时间:2017-11-17 11:59:20

标签: c dlopen

我无法理解使用dlopen和RTLD_NODELETE打开的dlclose关闭的完整意义。如果我正确理解RTLD_NODELETE使得库保留在内存中直到程序执行结束,那么dlclosing它对内存占用率没有影响。那么在这种情况下不调用dlclose真的是一种不好的做法吗?如果是这样,为什么? 感谢。

1 个答案:

答案 0 :(得分:0)

至于原始问题,答案是否定的 - 您不需要在dlclose库上致电RTLD_NODELETE,因为它无法做任何事情。

另一方面,不是永远加载所有插件(浪费资源,例如内存),而是将它们全部链接到将保持共享状态的助手共享库(即您提到的全局符号)。这个库将加载第一个插件并卸载最后一个插件。