我研究C并且我注意到我找不到某些头文件的实现文件,例如stdio.h
,它是一个包含许多输入/输出函数的库,如{{1 }}。我在哪里可以找到它的实现?
答案 0 :(得分:26)
下载以下其中一项:
或者,更好的是,下载其中的几个并比较它们的实现。当然,与您的特定标准库实现相比,这些可能会做很多不同的事情,但对于例如非特定于平台的功能,例如sprintf。
答案 1 :(得分:7)
您需要找到像glibc这样的C标准库的源代码:http://www.gnu.org/s/libc/
您可以在此处下载资源:http://ftp.gnu.org/gnu/glibc/ 它包含所有库函数的源。
答案 2 :(得分:6)
例如here。 Google是您的朋友 - 只需搜索stdio.c
即可。但请注意,您应该将这些视为“许多可能的实现” - 您不知道编译器是如何通过阅读这些实现的,您只需了解它是如何完成的。
答案 3 :(得分:3)
在Ubuntu或其他使用aptitude进行包管理的操作系统上,您可以使用:
apt-get source libc6
例如。
此外,以详细模式运行gcc将告诉您它正在使用的路径的详细信息。这应该可以帮助您找到它正在使用的包含和库路径。
gcc -v
或
gcc -Wl,--verbose
答案 4 :(得分:2)
如果您安装了Windows SDK,则可以选择包含标准库源代码,这样您也可以看到它在Windows上的实现方式。