收藏本站 收藏本站
積木網首頁 - 軟件測試 - 常用手冊 - 站長工具 - 技術社區
首頁 > shell編程 > 正文

首頁 - PHP - 數據庫 - 操作系統 - 游戲開發 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell編程 - DOS命令 - jQuery - CSS樣式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

Linux動態庫函數的詳解

Linux動態庫函數的詳解

加載動態庫

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查看

返回動態庫中最近的一次錯誤

char *dlerror(void);

根據動態庫句柄和函數名稱,返回函數的地址

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

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

關閉動態庫

int dlclose(void *handle);

根據函數地址,返回函數名稱和其它信息

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

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;

構造函數和析構函數(這兩個是屬性,而不是函數)

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

例如:

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

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

解決linux下openoffice word文件轉PDF中文亂碼的問題
網上很多介紹是由于jdk中的沒有字體導致亂碼,而我遇到的是轉換過程并未報錯,但轉換后的PDF中是亂碼,嘗試在jre/lib/fonts/中增加字體,還是不能解決

shell腳本實現本地文件與服務器文件同步
為何創建此腳本是因為方便項目的布署,不需要手動地去同步不同的項目,而只需要簡單的執行shell腳本,輸入項目名就能發布到服器上。1、shell文件代

詳解Linux中兩個查找命令locate和find教程
Linux中有很多查找命令,今天主要講解locate,find兩個命令。1.locatelocate命令其實是find-name的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目

本周排行

更新排行

強悍的草根IT技術社區,這里應該有您想要的! 友情鏈接:b2b電子商務
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP備05050695號
捕鱼大师辅助软件 手机捕鱼送分可提现金 22选5杀号最准的方法 11选5任2神号期期必中 申城棋牌游戏? 今日股票大盘多少点 江苏体彩e球彩下载 东方6 1开奖结果查询 3d澳门彩报1282期 澳洲快乐8开奖走势 手机上捕鱼赢钱技巧 上海明星麻将规律 股市趋势技术分析p 体彩顶呱刮一包中奖率 上海时时乐413开奖 江西多乐彩走势图工 至尊棋牌下载安装