以下是我找到源代码的步骤res_search.
$ man res_search
我在那个手册页中看到: Link with -lresolv
$ ls /usr/lib/libresolv*
糟糕,没有.我们还在哪里看?怎么样:
$ ls /lib/libresolv* /lib/libresolv-2.7.so /lib/libresolv.so.2
大.现在什么包是从?
$ rpm -qf /lib/libresolv-2.7.so glibc-2.7-2
啊.它在glibc.现在,有两种选择.我可以获取源RPM,并查看这些,以获得我的系统构建的确切版本,但设置有点复杂.
如果您不需要从中构建的确切源RPM,则可以查看[upstream](http://en.wikipedia.org/wiki/Upstream_ ( software_development))源代码.只需浏览glibc网站以查找源代码,然后开始查看.
$ curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 20.2M 100 20.2M 0 0 12.3M 0 0:00:01 0:00:01 --:--:-- 12.8M
$ tar xzf glibc-2.7.tar.gz
$ cd glibc-2.7
$ find . -name "*.c" | xargs grep res_search
./resolv/res_data.c:res_search(const char *name, /* domain name */
./resolv/res_data.c:# undef res_search
./resolv/res_data.c:weak_alias (__res_search, res_search);
你有它!
如果您安装了Git,而不是只下载tarball,您可以克隆git repo,并查看它.这样,您还可以查看任何过去或未来版本,以了解它是如何随时间变化的.
$ git clone git://sourceware.org/git/glibc.git $ cd glibc $ git checkout glibc-2.7 $ git grep res_search resolv/res_data.c:res_search(const char *name, /* domain name */ resolv/res_data.c:# undef res_search resolv/res_data.c:weak_alias (__res_search, res_search);
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |