如何关联glibc和“libc”版本?

时间:2011-05-05 14:50:49

标签: glibc libc realpath

我的Linux机器上realpath的手册页说:

VERSIONS
       On Linux this function appeared in libc 4.5.21.

现在是什么意思?它指的是哪个libc - “Linux libc”? - 我在哪里可以找到匹配不同libc风格的列表,所以我可以看到链接到这个函数和其他函数的最低要求是什么?

GLIBC版本为2.13,远低于4.5.21,但维基百科有关glibc的网页上写道:

  在20世纪90年代初,开发商   Linux内核分叉glibc。其   fork,称为“Linux libc”,是   多年来分开维护   发布了第2版到第5版。

...和

  

最新使用的Linux libc版本   使用内部名称(soname)   的libC.so.5。继此之后,   Linux上的glibc 2.x使用soname   libc.so.6的

这是否意味着任何glibc等同于主要版本高于5的“Linux libc”?

还有其他手册页引用了这个或那个版本的“libc”,所以realpath只是问题的一个例子。

注意:我正在构建的代码不仅限于Linux,这就是为什么我需要一种明确的方法来检测某个函数是否可用。

1 个答案:

答案 0 :(得分:2)

glibc虽然版本2.x,但多年来被称为“libc6”,与旧版libc3 / 4/5的版本控制方案兼容。在任何情况下,Linux系统上的手册页都非常有用,但不一定是规范的。 glibc使用“info”系统而不是手册页,因此对于glibc函数,你可能最好看一下glibc manual而不是手册页。虽然realpath函数中的bug类别在历史上下文中很有意思,但除非你的目标是libc5系统(当然你不是这样)并不是特别有帮助。