链接程序和库指南

测试功能

使用特殊句柄 RTLD_DEFAULTRTLD_PROBE,应用程序可以测试是否存在其他符号。符号搜索采用重定位调用目标文件时所用的同一模型。 请参见缺省符号查找模型。例如,如果应用程序 prog 包含以下代码片段:


        if ((fptr = (int (*)())dlsym(RTLD_DEFAULT, "foo")) != NULL)

                (*fptr)();

则会首先在 prog 中搜索 foo,然后在 /lib/libc.so.1 中搜索。如果此代码片段包含在图 3–1 中显示的示例的文件 B.so.1 中,则会继续在 B.so.1 中搜索 foo,然后在 C.so.1 中搜索。

此机制为未定义的弱引用的使用提供了强大而灵活的替代方案,如弱符号中所述。