天天看點

【系統程式設計】程式設計調用動态庫(dlopen、dlsym、dlclose、dlerror)

動态庫的制作:https://blog.csdn.net/qq_40602000/article/details/101148858

#include <dlfcn.h>

dlopen以指定模式打開指定的動态連接配接庫檔案,并傳回一個句柄給調用程序,dlerror傳回出現的錯誤,dlsym通過句柄和連接配接符名稱擷取函數名或者變量名,dlclose來解除安裝打開的庫。

1、打開指定名字的庫

void *dlopen(const char *filename, int flags);

參數: 1、filename ---》動态庫的名稱

           2、flags

                2.1、RTLD_NOW ---》立即解析庫中的符号,一般用這個

                2.2、RTLD_LAZY  ---》暫緩決定,等有需要時再解析

傳回值:成功:庫的句柄

2、擷取動态庫中指定符号(函數名)的位址

void *dlsym(void *handle, const char *symbol);

參數: 1、handle ---》dlopen的傳回值

            2、symbol ---》庫中函數名

傳回值:成功:庫中函數的位址

3、解除安裝動态庫

int dlclose(void *handle);

參數:handle ---》dlopen的傳回值

4、列印操作動态庫時的出錯資訊

char *dlerror(void);

參數:無

傳回值:将出錯資訊當作字元串傳回   

繼續閱讀