在哪里可以找到C标准头文件(如stdlib.h)中声明的函数的定义?

4

我正在使用Linux (ubuntu)。

我想阅读一些函数的定义,这些函数在头文件中声明,例如stdlib.h

我尝试寻找stdlib.c文件,但没有找到。

请问有人可以告诉我在我的系统上哪里可以找到相应的代码文件。

如果我太天真了,请原谅。谢谢。


可能是重复的问题:在哪里找到stdio.h函数的实现? - Fred Foo
4个回答

6
你需要下载glibc的源代码。你的发行版通常只提供已编译版本的C库。另请参阅维基百科文章。(例如,在类似于Debian的系统上,尝试apt-get source libc6。)
glibc并不是Linux-like系统中唯一的C库,还有几个“竞争者”。例如,uClib是一个非常小的替代品,适用于嵌入式应用程序。

1
值得注意的是,libc 的一些实现将函数的实现定位在每个函数的单独文件中。因此,您不一定会找到 stdlib.c。例如,如果您正在寻找 memset,则可能需要查找 memset.c - junix

1
对于大多数基于Linux的系统,标准库都是由glibc提供的。您可以在此处浏览git存储库:

http://sourceware.org/git/?p=glibc.git;a=tree

请注意,许多有趣的源代码位于“sysdeps”树下,特别是“sysdeps / unix / sysv / linux”和类似目录。

0

正如前面的答案所解释的那样,Linux 上函数的代码包含在 glibc 中。如果您需要在您的系统上运行确切的代码,那么这是我们唯一的途径。如果您只是对如何实现这些函数感兴趣,也许最好的方法是查看更简单的 libc,例如用于嵌入式系统的微型 libc uClibc;查找 Minix 的 libc 源代码(原始版本,而不是当前的 Minix3);也许 Plan 9 中的 libc 也适合。


-2
如果你在Ubuntu中使用vim编辑器运行C程序,那么你需要的头文件可以在Esc模式下按gf键获取。例如:
      #include<stdio.h>
     you placed in the cursor point s and press the gf then automatically  go to the standard library of stdio.h

                (or)

使用命令更改目录

                  cd /usr/include

这个目录包含所有头文件


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