linux c之动态打开链接库(dlopen dlsym dlclose)
生活随笔
收集整理的這篇文章主要介紹了
linux c之动态打开链接库(dlopen dlsym dlclose)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 linux提供了加載和處理動態(tài)鏈接庫的系統(tǒng)調用
2 主要函數
1) dlopen、
dlopen以指定模式打開指定的動態(tài)連接庫文件,并返回一個句柄給調用進程,打開模式如下:
RTLD_LAZY 暫緩決定,等有需要時再解出符號
RTLD_NOW 立即決定,返回前解除所有未決定的符號。
2) dlsym、
dlsym通過句柄和連接符名稱獲取函數名或者變量名
3) dlclose
dlclose來卸載打開的庫
4) dlerror
dlerror返回出現的錯誤
3 測試Demo
1)寫一個add.c文件,然后編譯成一個libadd.so,add.c文件如下
int add(int a, int b) {return a + b; }int sub(int a, int b) {return a - b; }編譯參數 gcc -fPIC -shared
編譯命令
我們把生成的so拷貝到我們需要測試的test.c同一個目錄下
test.c文件如下
總結
以上是生活随笔為你收集整理的linux c之动态打开链接库(dlopen dlsym dlclose)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: open ssl里面的自定义get***
- 下一篇: C语言之在结构体里面放很多函数指针