Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我写了一个简单的 LD_PRELOAD 模块,在 Ubuntu 服务器上编译。此预加载是否适用于其他系统,如 Solaris、FreeBSD、CentOS 等。在某些操作系统上是否有任何特殊问题?
该LD_PRELOAD机制适用于所有 ELF 系统(Linux、Solaris 等)。
LD_PRELOAD
理论上,如果体系结构匹配,相同的库可以在不同的操作系统上使用(例如,i386 库不能在 Solaris SPARC 上运行),但存在许多缺陷。例如,C 库提供的许多数据结构具有不同的大小和成员排列,即使架构相同,它们也会在操作系统之间不兼容。
如果您对在LD_PRELOAD库中调用的函数非常小心,那么您可以创建一个在操作系统之间兼容的库。你肯定需要测试它。