检查是否在unix中加载了共享对象

时间:2012-12-31 09:52:54

标签: c++ unix shared-libraries

编写Windows应用程序时,我可以使用以下方法检查当前进程是否加载了特定的dll:

GetModuleHandle(TEXT("Dll Name"));

如何在unix系统中获得相同的功能?也就是说,是否有任何常见的系统调用可以提供有关当前进程(动态)加载的共享对象的一些信息?

1 个答案:

答案 0 :(得分:4)

使用dlopen

查找RLTD_NOLOAD
  

RTLD_NOLOAD(自glibc 2.2起)

     

这不会加载库。这可以用来测试库是否已经驻留(dlopen()如果不是NULL则返回{{1}},如果是常驻库则返回库的句柄。