查看名称空间解析器函数linux fedora的源代码

时间:2009-11-08 05:10:29

标签: linux

我想看看ns_initparse(),res_search()等函数的来源。我在哪里可以找到它们?

2 个答案:

答案 0 :(得分:5)

以下是我找到res_search的来源的步骤。

$ man res_search

我在那个手册页中看到:Link with -lresolv

$ ls /usr/lib/libresolv*
哎呀,没什么。 Where else do we look?怎么样:

$ ls /lib/libresolv*
/lib/libresolv-2.7.so  /lib/libresolv.so.2

大。现在what package is that from

$ rpm -qf /lib/libresolv-2.7.so
glibc-2.7-2

阿。它在glibc。现在,有两种选择。我可以获取源RPM,并查看这些内容,以获得构建我的系统的确切版本,但that's a bit complicated to set up

如果您不需要自己构建的确切源RPM,则可以查看[上游](http://en.wikipedia.org/wiki/Upstream_(software_development))源代码。只需查看glibc site即可找到{ {3}},然后开始浏览。

$ 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);

你有它!

如果您安装了source code,那么您可以克隆git repo,而不仅仅是下载tar包,并查看它。这样,您还可以查看过去或未来的任何版本,看看它是如何随时间变化的。

$ 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);

答案 1 :(得分:1)

我不确定你是否对Fedora特定内容感兴趣,但我很幸运Google Code Search找到某些功能的源代码。