获取加载的dylib的句柄

时间:2012-05-02 10:45:37

标签: linux macos gcc dylib

假设我加载了一个dylib并丢弃了句柄:

void loadfoo()
{
    dlopen("/lib/foo.dylib" , RTLD_NOW);
}

然后我想在另一个功能中关闭它:

void closefoo()
{
    dlclose // ???
}

如果在调用dlopen期间没有保存,那么我能以某种方式找到先前加载的dylib的句柄吗?

1 个答案:

答案 0 :(得分:2)

如果我在生产中看到这样的代码,我会让发端人永远蔑视,但是:

void *handle = dlopen("/lib/foo.dylib", RTLD_NOW);
dlclose(handle);
dlclose(handle);