【问题标题】:Where can I get the source code of the C standard functions in gcc/clang etc?我在哪里可以获得 gcc/clang 等 C 标准函数的源代码?
【发布时间】:2013-01-22 03:26:55
【问题描述】:

我想查看函数的“真实”C 源代码——它在 gcc 和 clang 编译器中的真实实现。我的意思是“真实的”,因为我在头文件中查看,但我只看到一个原型和一些看起来像扩展的东西。

例如,假设我想要标准 C tmpnam() 函数的代码。它在 stdio.h 头文件中定义(按照标准——我知道只有它的原型必须在那里定义;代码本身可以来自 any (最好由编译器编写者选择)头文件)。但我能看到的只有

/* Generate a temporary filename.  */
extern char *tmpnam (char *__s) __THROW __wur;
__END_NAMESPACE_STD

使它工作的函数的代码在哪里?这就是我要找的。同样,我在 clang 编译器中找不到它。 如果可能的话,有人可以解释为什么编译器作者选择这个模型吗?它不会在相应的头文件中显式地留下代码吗?执行某种类型的优化或类似的东西是什么“技巧”吗?

【问题讨论】:

  • 您使用的是什么操作系统?
  • 我使用的是 GNU/Linux OpenSUSE 操作系统

标签: c gcc clang header-files


【解决方案1】:

您可以尝试获取source code of glibc 或任何类似的C 库实现。那应该有您正在寻找的代码。您也可以浏览source code of glibc online

至于推理,它的基本“你看不到你不需要看的东西”的推理。无需查看实现,只需查看库的接口即可。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 2023-04-06
相关资源
最近更新 更多