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

pri*_*sta 21 c

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

Eri*_*rik 27

下载其中一个:

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


Ben*_*Ben 8

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

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


sch*_*der 7

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


pla*_*att 5

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

apt-get source libc6
Run Code Online (Sandbox Code Playgroud)

例如。

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

gcc -v
Run Code Online (Sandbox Code Playgroud)

或者

gcc -Wl,--verbose
Run Code Online (Sandbox Code Playgroud)