我想创建的printf的修改版本的库,然后调用LD_PRELOAD所以,当我的程序调用printf它使用我的版本。 谁能向我解释如何使用LD_PRELOAD,如果有特殊的一个东西,我需要在我的代码或我的图书馆办?
Answer 1:
你刚才设置环境变量LD_PRELOAD
的完整路径替换库。 既然你那点之后推出的所有程序将会尝试使用这个库,你可能想使一个包装脚本,设置LD_PRELOAD
然后调用你想要运行的程序。
Answer 2:
- 至于我首先是所有的程序不能改变了evective UID或GID知道(所谓的SUID或GUID程序)。
- 它应该只用于特定目的,如调试使用。 至于我记得你可能阴影C函数(在小精灵?)。 但是这两种技术-
LD_PRELOAD
和阴影应该是应对extream照顾。 我记得发现的bug阴影g_malloc
在GPGME代码(或其他相关的GPG)作为GLib的内部变化。
简单的答案是 - 不这样做。 更复杂 - 做到这一点当且仅当你有 - 而且通常不这样做(除非你写某种调试软件)。
Answer 3:
这似乎是一个坏主意。 为什么不命名版本printf
别的东西吗?
文章来源: Help with using LD_PRELOAD