2

我写了一个简单的 LD_PRELOAD 模块,在 Ubuntu 服务器上编译。此预加载是否适用于其他系统,如 Solaris、FreeBSD、CentOS 等。在某些操作系统上是否有任何特殊问题?

4

1 回答 1

1

LD_PRELOAD机制适用于所有 ELF 系统(Linux、Solaris 等)。

理论上,如果体系结构匹配,相同的库可以在不同的操作系统上使用(例如,i386 库不能在 Solaris SPARC 上运行),但存在许多缺陷。例如,C 库提供的许​​多数据结构具有不同的大小和成员排列,即使架构相同,它们也会在操作系统之间不兼容。

如果您对在LD_PRELOAD库中调用的函数非常小心,那么您可以创建一个在操作系统之间兼容的库。你肯定需要测试它。

于 2012-06-10T14:44:42.197 回答