Linux系统共享库编程

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  // call fun

  a = 200;

  b = 600;

  printf(“max=%d\n”, GetMax(a, b));

  printf(“txt=%d\n”, GetInt(psztxt));

  // close mytestso.so

  dlclose(pdlhandle);

  }

  然后使用如下命令进行编译:

  gcc mytest.c -ldl -o mytest

  -ldl选项,表示生成的对象模块需要使用共享库

  (1)dlopen()

  第一个参数:指定共享库的名称,将会在下面位置查找指定的共享库。

  -环境变量LD_LIBRARY_PATH列出的用分号间隔的所有目录。

  -文件/etc/ld.so.cache中找到的库的列表,用ldconfig维护。

  -目录usr/lib。

  -目录/lib。

  -当前目录。

  第二个参数:指定如何打开共享库。

  -RTLD_NOW:将共享库中的所有函数加载到内存

  -RTLD_LAZY:会推后共享库中的函数的加载操作,直到调用dlsym()时方加载某函数

  (2)dlsym()

  调用dlsym时,利用dlopen()返回的共享库的phandle以及函数名称作为参数,返回要加载函数的入口地址。

  (3)dlerror()

  该函数用于检查调用共享库的相关函数出现的错误。

  四、结束语

  本文主要阐述了Linux系统使用共享库的编程问题,并通过一个简单的实例详细说明。

[1][2]

要铭记在心;每天都是一年中最美好的日子

Linux系统共享库编程

相关文章:

你感兴趣的文章:

标签云: