假如您没有应用程序的源代码并且由于 C 的 GNU 库(glibc)函数正将某些错误信息返回给该应用程序而使它失败,那么您该怎么办? 因为 glibc 是开放源码,所以您当然可以获得其源代码、对它进行更改、重新构建和安装。 然而,这不适合那些胆怯的人,因为虽然 API 有很好的文档说明,但 GNU C 库的内部组织却没有。 查找正确的函数原型只是众多挑战中的第一个。 它还是一个很大的包,所以第一次编译时,它将花一些时间(glibc 2.2.2 有 8552 个文件和 1775440 行代码,包括注释)。
结束语 编写 GNU C 库函数的专用版本是调试系统问题或进行快速修正的好方法。 使用 LD_PRELOAD shell 变量,可以选择性地用您自己的专用版本来覆盖系 统 C 库函数。这种技术可用于 linux 和 Solaris 环境。 关于作者 Jay Allen 是 IBM linux for Service Providers Lab(LSPL)的程序员。可以通过 jaydallen@us.ibm.com 与 Jay 联系。