濮阳杆衣贸易有限公司

主頁 > 知識庫 > Linux動態(tài)庫函數(shù)的詳解

Linux動態(tài)庫函數(shù)的詳解

熱門標簽:申請400電話有什么用 400電話申請找 汨羅代理外呼系統(tǒng) 宿松高德地圖標注 4層電梯外呼控制系統(tǒng)設計 網(wǎng)絡電話外呼系統(tǒng)撥號軟件 天津智能外呼系統(tǒng)排名 貴陽400電話到哪里去辦理 電銷機器人加盟多少錢

Linux動態(tài)庫函數(shù)的詳解

加載動態(tài)庫

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

flag的可能值:

  •         RTLD_LAZY
  •         RTLD_NOW
  •         RTLD_GLOBAL
  •         RTLD_LOCAL
  •         RTLD_NODELETE (since glibc 2.2)
  •         RTLD_NOLOAD (since glibc 2.2)
  •         RTLD_DEEPBIND

這些flag的具體含義可使用man查看

返回動態(tài)庫中最近的一次錯誤

char *dlerror(void);

根據(jù)動態(tài)庫句柄和函數(shù)名稱,返回函數(shù)的地址

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

如果使用dlopen(NULL, flag>)得到句柄,通過這個句柄可以查找所有函數(shù)符號,只要那個函數(shù)符號所在的dll在加載時指定了RTLD_GLOBAL 

關閉動態(tài)庫

int dlclose(void *handle);

根據(jù)函數(shù)地址,返回函數(shù)名稱和其它信息

注意傳入地址只要落在函數(shù)代碼空間范圍之內(nèi)即可,不需要是函數(shù)的起始地址

int dladdr(void *addr, Dl_info *info);
 
typedef struct {
   const char *dli_fname;/* Filename of defining object */
   void *dli_fbase;   /* Load address of that object */
   const char *dli_sname;/* Name of nearest lower symbol */
   void *dli_saddr;   /* Exact value of nearest symbol */
  } Dl_info;

 構(gòu)造函數(shù)和析構(gòu)函數(shù)(這兩個是屬性,而不是函數(shù))

__attribute__((constructor))
__attribute__((destructor))

例如:

__attribute__((constructor)) void before_main() 
{ 
    printf("before main/n"); 
} 
 
__attribute__((destructor)) void after_main() 
{ 
  printf("after main/n"); 
} 

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • linux下編譯boost.python簡單方法
  • 深入探討Linux靜態(tài)庫與動態(tài)庫的詳解(一看就懂)
  • linux生成(加載)動態(tài)庫靜態(tài)庫和加載示例方法
  • Linux下g++編譯與使用靜態(tài)庫和動態(tài)庫的方法
  • 分析Windows和Linux動態(tài)庫
  • linux 程序、動態(tài)庫、靜態(tài)庫內(nèi)部添加版本號和編譯時間詳解
  • 解決Linux程序編譯鏈接動態(tài)庫版本的相關問題
  • Linux靜態(tài)庫與動態(tài)庫實例詳解
  • 淺談Linux C語言動態(tài)庫及靜態(tài)庫
  • linux中使用boost.python調(diào)用c++動態(tài)庫的方法

標簽:烏蘭察布 廣東 海北 連云港 臨沂 昌都 贛州 撫州

巨人網(wǎng)絡通訊聲明:本文標題《Linux動態(tài)庫函數(shù)的詳解》,本文關鍵詞  Linux,動態(tài),庫,函數(shù),的,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux動態(tài)庫函數(shù)的詳解》相關的同類信息!
  • 本頁收集關于Linux動態(tài)庫函數(shù)的詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    保靖县| 洞头县| 五寨县| 泉州市| 长海县| 博乐市| 洪湖市| 开封市| 虹口区| 榕江县| 榆社县| 会东县| 呼玛县| 增城市| 合水县| 中宁县| 乌鲁木齐县| 大连市| 德清县| 阳朔县| 靖江市| 蒲江县| 隆昌县| 个旧市| 衡阳市| 石屏县| 罗定市| 汤原县| 吉隆县| 那坡县| 磴口县| 清涧县| 阿巴嘎旗| 囊谦县| 巢湖市| 贡嘎县| 全州县| 南岸区| 渝中区| 西乡县| 资源县|