gpt4 book ai didi

c - 我对 C 库感到困惑

转载 作者:IT王子 更新时间:2023-10-29 01:16:50 25 4
gpt4 key购买 nike

好的,事情是这样的。

大多数人都是在第一次接触C语言的时候就同时了解C标准库的,我也不异常(exception)。但是由于我现在正在学习 linux,所以我倾向于对 C 库感到困惑。首先,我知道当您在 Linux 发行版上将 gcc 作为静态库安装时,您会得到一个不错的旧 C 标准库。之后,只要连接到 Internet,您就会很快获得新的稳定版本的 glibc。

我开始研究 glibc API,这就是我搞砸的地方。 glibc 似乎支持大量的库,基本上从 POSIX C 标准库(实现标准 C 库(包括我所知道的 C99))到它自己基于 POSIX 标准 C 库的扩展。

这是否意味着 glibc 实际上修改或添加了 POSIX C 标准库中的函数?甚至添加全新的标题集?因为我看到一些不在标准 C 库中但实际上包含在标准 C 头文件中的函数(例如 strnlen() in

还提到我提到的关于“glibc 制作全新的头文件集”的内容,是因为我开始看到一些看起来非常独特的头文件,例如 linux/blahblah.h 或 sys/syscalls .h <=(这些是只有 glibc 支持的库吗?)

接下来的问题是,我居然听说linux是基于C语言构建的。这是否意味着 linux 使用它自己的 gcc 编译器来编译自己??????

最佳答案

对于第一个问题,glibc 遵循标准 C 和 POSIX,来自 About glibc

The GNU C Library is primarily designed to be a portable and high performance C library. It follows all relevant standards including ISO C11 and POSIX.1-2008. It is also internationalized and has one of the most complete internationalization interfaces known.

对于第二个问题,是的,你可以使用gcc来编译Linux。甚至 gcc 本身也可以使用 gcc 进行编译,它被称为 bootstrapping .

关于c - 我对 C 库感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17906735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com