如何获取某个函数或程序源代码:
1 百度、google搜索,下载相关的源代码(这个就不说了,下面介绍方法2)
2、 gnu网站下载(manual手册和package都能下),搜索相关的包即可下载(www.gnu.org:进入software--> 自由软件目录--> 查找相应的包即可,如libc)
还提供了git下载的链接,可以用git clone进行下载。如下图:
问题来了:如何确定相应的程序在哪个包下呢?
下面以Centos为例,查看ls命令位于哪个包:
#which ls #这个是注释:which 找出shell命令的安装路径
/bin/ls
找出该档案属于哪一个安装的软件:
#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 )命令确认一下。