在哪里找到stdio.h函数实现?

我研究C,我注意到我找不到某些头文件的实现文件,例如stdio.h ,它是一个包含很多输入/输出函数的库,比如printf 。 我在哪里可以找到它的实现?

下载其中一个:

  • glibc的
  • uClibc的
  • dietlibc
  • BSD libc

或者,更好的是,下载其中的几个并比较它们的实现。 当然,与特定的标准库实现相比,这些可能会做很多不同的事情,但对于非平台特定的function(如sprintf)仍然非常有趣。

例如这里 。 谷歌是你的朋友 – 只需搜索stdio.c 。 但请注意,您应该将这些视为“许多可能的实现” – 您不知道编译器是如何通过阅读这些实现的,您只需了解它是如何完成的。

您需要找到像glibc这样的C标准库的源代码: http : //www.gnu.org/s/libc/

您可以在此处下载源代码: http : //ftp.gnu.org/gnu/glibc/它包含所有库函数的源代码。

如果安装Windows SDK,则可以选择包含标准库源代码,这样您还可以查看它在Windows上的实现方式。

在Ubuntu或其他使用aptitude进行包管理的操作系统上,您可以使用:

 apt-get source libc6 

例如。

此外,以详细模式运行gcc将告诉您它正在使用的路径的详细信息。 这应该可以帮助您找到它使用的包含和库路径。

 gcc -v 

要么

 gcc -Wl,--verbose