术语“libc”是不是等同于“C 标准库”?

Posted

技术标签:

【中文标题】术语“libc”是不是等同于“C 标准库”?【英文标题】:Is the term "libc" equivalent to "C standard library"?术语“libc”是否等同于“C 标准库”? 【发布时间】:2011-07-28 08:23:43 【问题描述】:

我有时听到人们交替使用术语“libc”和“C 标准库”。我知道“libc”是许多流行的 C 标准库实现的名称(或名称的一部分)。我的猜测是,由于这些实现的广泛使用,人们开始将 C 标准库统称为“libc”,尽管它不是正式名称。

将C标准库称为“libc”是否正确?

【问题讨论】:

【参考方案1】:

我一直认为“libc”恰好是许多流行的 C 标准库实现的名称(或名称的一部分)。

这是正确的。 "libc" 是 C 标准库的一些 实现的名称。

作为未命名为“libc”的 C 标准库实现示例,Microsoft C 标准库实现是通常称为“CRT”的"C Run-Time Libraries," 的一部分。

将C标准库称为“libc”是否正确?

C 标准库未命名为“libc”,因此使用该术语泛指它(而不是特定实现)是不正确的。也就是说,在大多数情况下,如果您确实使用术语“libc”来指代 C 标准库,您仍然可能会被理解。

【讨论】:

谢谢,但您的回答仍然有可能 libc 既是官方名称又是多个实现使用的名称。使用“libc”来引用通用C标准库是否正确?我相信你的意思是不,但我只是想确定一下。 @pepsi:C 标准库未命名为“libc”,因此使用该术语泛指它(而不是特定实现)是不正确的。也就是说,在大多数情况下,如果您确实使用术语“libc”来指代 C 标准库,那么您仍然可能会被理解。 谢谢。这正是我想澄清的 我认为将 C/POSIX/其他操作系统实现的库部分称为“libc”是相当标准和合理的,无论它的文件名(或者它是否有文件名)在具体实现。【参考方案2】:

“libc”确实是实现的名称。它通常包含不属于 C 标准的函数,并且可能 包含 属于 C 标准的函数。 (后者的常见情况是标准 C 数学函数被拆分为单独的“libm”。)

【讨论】:

【参考方案3】:

LibC (http://www.gnu.org/s/libc/) 是 C 库标准 (http://en.wikipedia.org/wiki/C_standard_library#ISO_Standard) 的一种特殊实现。

【讨论】:

【参考方案4】:

'libc' 指的是 C 标准库。但是,libc 有几个实现:

glibc:为 GNU 项目编写的 libc 实现 klibc : libc 的简约子集实现 ...

【讨论】:

以上是关于术语“libc”是不是等同于“C 标准库”?的主要内容,如果未能解决你的问题,请参考以下文章

gcc默认链接到libc.a或libc.so吗?

android ndk

C++--标准库 字符串类

linux 下C标准库是动态库还是静态库,还是两种库都提供了?

C标准库内部实现

C 标准库函数名称中的“f”代表啥?