共享库的使用

来源:互联网 发布:电源网络二合一防雷器 编辑:程序博客网 时间:2024/05/29 16:59
#include <stdio.h>#include <dlfcn.h>typedef int (*PFUNC_CALC) (int, int);typedef void (*PFUNC_SHOW) (int, char, int, int);int main (void) {void* handle = dlopen ("shared/libmath.so",RTLD_NOW);  //加载共享库,且立即加载if (! handle) {printf ("dlopen: %s\n", dlerror ());  //dlerror获取错误信息return -1;}PFUNC_CALC add = (PFUNC_CALC)dlsym (handle,"add");   //获取上面加载的库中的函数地址if (! add) {printf ("dlsym: %s\n", dlerror ());return -1;}PFUNC_CALC sub = (PFUNC_CALC)dlsym (handle,"sub");if (! sub) {printf ("dlsym: %s\n", dlerror ());return -1;}PFUNC_SHOW show = (PFUNC_SHOW)dlsym (handle,"show");if (! show) {printf ("dlsym: %s\n", dlerror ());return -1;}show (30, '+', 20, add (30, 20));show (30, '-', 20, sub (30, 20));dlclose (handle);     //卸载共享库return 0;}

0 0
原创粉丝点击