2013-02-21 105 views
1

我正在使用Linux(ubuntu)。我在哪里可以找到c标准头文件中声明的函数的定义,如stdlib.h?

我想读的这些声明在头文件中像stdlib.h

我试图寻找stdlib.c,但无法找到一个部分功能的函数定义。

任何人都可以请让我知道我在哪里可以找到我的系统上相应的代码文件。

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

+0

可能重复[在哪里可以找到文件stdio.h函数的实现?(HTTP:/ /stackoverflow.com/questions/5233514/where-to-find-stdio-h-functions-implementations) – 2013-02-22 00:56:47

回答

4

你需要下载glibc的源代码。您的发行版通常只会附带C库的编译版本。另见the Wikipedia article

(例如在Debian-like系统尝试apt-get source libc6。)

的glibc是不是唯一的C库对等的Linux系统中,存在一对夫妇的 “竞争对手”。例如,uClib是用于嵌入式应用的非常小的替代方案。

+1

还值得注意的是,libc的一些实现将函数的实现定位在每个函数的自己文件中。所以你不一定会找到一个'stdlib.c'。例如,如果你正在寻找memset,你可能需要寻找一个'memset.c'。 – junix 2013-02-22 00:06:36

1

对于大多数基于Linux的系统,标准库由glibc提供。你可以在这里浏览git仓库:

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

注意,很多有趣的来源是藏在sysdeps树,特别是sysdeps/unix/sysv/linux和类似下离开。

0

正如前面的答案所解释的,Linux上函数的代码包含在glibc中。如果你需要在你的系统上运行的确切代码,那是我们唯一的递归。如果你只关心如何实现这些功能,或许最好的选择就是看看更简单的libc,看看uClibc,嵌入式使用的微型libc;寻找Minix的libc源代码(原始的,不是当前的Minix3);也许在Plan 9也是合适的。

1

如果您在ubuntu中使用过,那么您可以使用vim editor.so运行Cprogram,其中 头文件您希望该头文件按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 

这个目录包含所有头文件

相关问题