获取函数或程序相关的源码

如何获取某个函数或程序源代码:

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 )命令确认一下。

原文地址:https://www.cnblogs.com/OpenLinux/p/5020696.html