LD_PRELOAD是否适用于所有类型的unix / linux?

时间:2012-06-09 08:52:36

标签: c++ linux unix ubuntu ld-preload

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

1 个答案:

答案 0 :(得分:1)

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

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

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