基本定義
包含頭檔案:
函式定義:
函式描述:
dlsym (dynamic library symbol)
根據 動態程式庫 操作句柄(handle)與符號(symbol),返回符號對應的地址。使用這個函式不但可以獲取函式地址,也可以獲取變數地址。
handle:由dlopen打開動態程式庫後返回的指針;
symbol:要求獲取的函式或全局變數的名稱。
返回值:
void* 指向函式的地址,供調用使用。
使用dlsym
假設在my.so中定義了一個void mytest()函式,那在使用my.so時先聲明一個函式指針:
接下來先將那個my.so載入:
然後使用dlsym函式將函式指針 pMytest 指向 mytest() 函式:
(可調用dlerror();返回錯誤信息,正確返回為空)
最後通過調用函式指針執行mytest函式: