我写了一个简单的LD_PRELOAD模块,在Ubuntu服务器上编译。这个预加载是否适用于其他系统,如Solaris,FreeBSD,CentOS等。某些操作系统是否有任何特殊问题?
答案 0 :(得分:1)
LD_PRELOAD
机制适用于所有ELF系统(Linux,Solaris等)。
理论上,如果架构匹配(例如,i386库不能在Solaris SPARC上运行),则可以在不同的操作系统上使用相同的库,但存在许多缺陷。例如,C库提供的许多数据结构具有不同的大小和成员排列,即使体系结构相同,它们也会在操作系统之间不兼容。
如果您对LD_PRELOAD
库中调用的函数非常小心,那么您可以创建一个在操作系统之间兼容的库。你肯定需要测试它。