dlopen 和 dlsym 動態呼叫函式

2022-09-20 15:51:13 字數 396 閱讀 9892

dlopen 開啟乙個庫,獲取控制代碼。開啟so檔案獲取控制代碼(看作基位址)

dlsym 在開啟的庫中查詢符號的值。 (so裡面查某個函式位址)

dlclose 關閉控制代碼。

dlerror 返回乙個描述最後一次呼叫dlopen、dlsym,或 dlclose 的錯誤資訊的字串。

#import typedef int (*printf_func_pointer) (const char * __restrict, ...);

void dynamic_call_function() else

dlclose(handle); //關閉控制代碼

}} int main(int argc, char * ar**)

}

學習記錄 dlopen和dlsym的使用

c語言為了使程式方便擴充套件,具備通用性,可以採用外掛程式形式。採用非同步事件驅動模型,保證主程式邏輯不變,將各個業務已動態鏈結庫的形式載入進來,這就是所謂的外掛程式。linux提供了載入和處理動態鏈結庫的系統呼叫,非常方便。dlopen函式以指定模式開啟指定的動態鏈結庫檔案,並返回乙個控制代碼給d...

dlopen動態載入動態庫

為了使程式方便擴充套件,具備通用性,可以採用外掛程式形式。採用非同步事件驅動模型,保證主程式邏輯不變,將各個業務已動態鏈結庫的形式載入進來,這就是所謂的外掛程式。linux提供了載入和處理動態鏈結庫的系統呼叫,非常方便。本文先從使用上進行總結,涉及到基本的操作方法,關於動態鏈結庫的本質及如何載入進來...

dlopen動態庫訪問

因專案需要多程序共享資源訪問.include include include typedef struct titem typedef structtbank typedef struct tbankctrl static titem g titem static tbank g tbank sta...