采用dlopen、dlsym、dlclose加载动态链接库【总结】

  • 时间:
  • 浏览:0
  • 来源:大发PK10APP下载_大发PK10APP官方

2、生产动态链接库

这类将如下tcp连接池池编译为动态链接库libcaculate.so,tcp连接池池如下:

1、前言

编译参数 gcc -fPIC -shared 

采用上面生成的libcaculate.so,写个测试tcp连接池池如下:

编译选项如下:gcc -rdynamic -o main main.c -ldl

编译如下: gcc -fPIC -shared caculate.c -o libcaculate.so 

测试结果如下所示:

  为了使tcp连接池池方便扩展,具备通用性,可不必须采用插件形式。采用异步事件驱动模型,保证主tcp连接池池逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件。linux提供了加载和出理 动态链接库的系统调用,非常方便。本文先从使用上进行总结,涉及到基本的操作法律办法,关于动态链接库的本质及要怎样加载进来,必须进一步学习,后续继续补充。要怎样将tcp连接池池设计为插件形式,挖开主题和业务之间的关系,必须进一步去学习。

 

  RTLD_LAZY 暂缓决定,等有必须时再解出符号 

  RTLD_NOW 立即决定,返回前解除所有未决定的符号。


3、dlopen、dlsym函数介绍

      在linux上man dlopen可不必须看后使用说明,函数声明如下:

  dlopen以指定模式打开指定的动态连接库文件,并返回有有2个多句柄给调用tcp连接池池,dlerror返回出先的错误,dlsym通过句柄和连接符名称获取函数名肯能变量名,dlclose来卸载打开的库。 dlopen打开模式如下: