在运行时扫描共享对象包含

时间:2013-05-15 13:47:57

标签: c linux shared-libraries inclusion readelf

我正在开发一个依赖于共享库作为插件的C程序(在Linux下)。

我为每个插件提供了我的静态库中的几个函数。为了改变程序的工作流程,我需要在运行时知道插件是否会调用上述库中包含的某个函数。

我需要的是C等价物:

readelf -a ${PLUGIN_NAME} | grep ${FUNCTION_NAME}

是否有可能利用<dlfcn.h>库来实现这一目标?不用说,我不想在system()调用中执行上面的oneliner。

由于

1 个答案:

答案 0 :(得分:1)

您可以尝试LibELF,它允许您操作ELF二进制文件(即读取部分)。很好的例子,你可以找到here