我在哪里可以在线浏览libc的源代码(例如doxygen)?

31
有时我想查找stdlib函数的实现,我已经下载了源代码,但是它非常混乱。仅仅用grep不太适合,因为有太多匹配结果。是否有人知道一个像doxygen风格一样的网页文档?Linux内核也是同样的情况。谢谢。

谢谢您的回复,但也许我没有表达清楚。我不感兴趣的是API,我想要API的实现。实际的源代码。谢谢。 - monkeyking
MonkeyKing,你试过我的答案了吗?Google Code搜索包含完整的源代码。 - Matthew Talbert
是的,谢谢,Google代码搜索似乎可以满足我的需求。 - monkeyking
libc源代码位置 - 下载或在线查看? - phuclv
6个回答

22
你应该检查你的发行版是使用原版GLIBC还是EGLIBC分支(Debian和Ubuntu已经切换到EGLIBC EDIT:他们在2014年左右又切换回来了)。无论如何,GLIBC的存储库浏览器位于http://sourceware.org/git/?p=glibc.git。@guruz下面发布的http://code.woboq.org/userspace/glibc/也是一个不错的选择。由于存在同一文件的多个版本,源码有点复杂。

感谢提供sourceware.org的链接,以前是sources.redhat.com。 - Dima Chubarov

8

8
Novell的链接失效了。 - John Carter
4
此答案需要更新。不幸的是,Google Code Search也已经不存在了。 - Jonathon Reinhart
谢谢,乔纳森,我已经包含了一个替代方案。仍在寻找一个好的libc替代品.... - Matthew Talbert
@jacopo的回答提供了一个指向git仓库浏览器的链接。 - Matt Clarkson
我有点困惑。在内核中不应该引用Malloc。如果我没记错的话,应该使用kmalloc或vmalloc。 - TrueY

7

3
为了帮助浏览glibc源代码,可以尝试使用诸如ctagscscope等工具。注意:我每次查看glibc源代码都会变得更加愚蠢,请小心! :)

1
如果你正在使用GNU C(glibc),函数(超出GNU扩展)遵循 POSIX标准,就其参数、实现、失败和返回值而言。如果你想窥探静态成员的内部结构,你必须查看代码。
每次尝试采用Doxygen等工具来管理glibc都会被拒绝,原因如下:
  1. 冗余,POSIX已经记录了几乎所有公开信息,还有man和info页面。
  2. 最初需要太多的工作。
  3. 对维护者来说是更多的工作。
就内核而言,Linux确实使用了一个类似于Doxygen的系统,称为 Kerneldoc

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接