编程库的使用指南
1. 代码复用与库的重要性
代码复用是软件开发中的一个重要目标,而库就是实现这一目标的经典方式。库将常用的编程例程集中到一个位置,例如系统 C 库包含了数百个常用的例程,像printf()输出函数和getchar()输入函数。除了代码复用和方便程序员之外,库还提供了大量实用代码,如网络编程、图形处理、数据操作等功能,以及最重要的系统调用。
2. libc5 和 libc6 的比较
在深入了解库的使用之前,需要了解两个竞争的 C 库:libc5 和 libc6(也称为 glibc2)。Linux 世界正在从特定于 Linux 的旧版 libc5 转向更通用、更快、更符合标准且更具扩展性的 libc6。
2.1 libc5 的问题
libc5 与 Linux 并行发展,随着 Linux 的成熟,原始的 GNU C 库被修改以适应内核的变化。这使得 C 库与 Linux 紧密集成,但也给使用 GNU C 库的其他操作系统带来了维护困难。此外,libc5 严重依赖 Linux 的内核头文件,导致了一系列不明智的依赖关系,减缓了内核开发速度,还可能引入内核与 C 库之间的兼容性问题。
2.2 libc6 的改进
1997 年,libc6/glibc2 的首次发布带来了重大改变。它消除了几乎所有对 Linux 内核头文件的依赖,并进行了以下改进:
- 新库具有线程安全性。
- 增加了一个易于扩展的名称数据库处理方案。
- 修正了数学库,并在许多情况下提高了速度。
- 更加符合