【发布时间】:2012-05-28 03:27:26
【问题描述】:
说,我要修改mmap。因此,我为此创建了一个新的共享对象文件,并使用 LD_PRELOAD 代替原来的mmap 来使用它。但是,我需要引用一个变量,即我的程序文件。我怎样才能做到这一点?我在某处读到了关于弱引用的信息。这就是这样做的方法。我不认为你可以使用extern,因为你编译共享库而不是你的程序。对此有何建议?
其次,LD_PRELOAD 是否仅影响代码中 mmap 的使用,或者例如从您的代码使用的标准库 libc.so 中调用的 mmap?
【问题讨论】:
-
你的程序有源码吗?如果是,为什么要使用
LD_PRELOAD而不是覆盖mmap()?