獲取函數或程序相關的源碼

如何獲取某個函數或程序源代碼:

1 百度、google搜索,下載相關的源代碼(這個就不說了,下面介紹方法2)git

二、 gnu網站下載(manual手冊和package都能下),搜索相關的包便可下載(www.gnu.org:進入software--> 自由軟件目錄--> 查找相應的包便可,如libc)shell

還提供了git下載的連接,能夠用git clone進行下載。以下圖:函數

 

問題來了:如何肯定相應的程序在哪一個包下呢?網站

下面以Centos爲例,查看ls命令位於哪一個包:google

#which ls       #這個是註釋:which  找出shell命令的安裝路徑spa

/bin/lsget

找出該檔案屬於哪個安裝的軟件:it

#rpm –qf /bin/ls         #Debian版本如Ubuntu使用: dpkg –S/bin/ls編譯

coreutils-xxx-xxx     #說明命令屬於coreutils-xxx-xxx安裝包百度

 

另外,如何找出函數對應的庫呢,不清楚的話能夠使用下面的方法:

寫個程序編譯一下,生成so庫(gcc -shared -fpic -o libxxx.so xxx.c),而後用ldd 或者readelf –d 查看一下,便可以找到庫名,而後用nm 或(readelf –s )命令確認一下。

相關文章
相關標籤/搜索