我想知道如何“给予”分叉进程一个与其“要求”不同的动态库。例如,如果分支“请求”库“foo.so”,则主进程“拦截”该库并提供“bar.so”。
考虑到我不太了解动态库是如何加载的,这很可能是不可能的。
答案1
您可以设置LD_LIBRARY_PATH
分叉进程指向execve
具有您的自定义版本的目录foo.so
。有关控制加载过程的共享库和环境变量的更多信息这里。
我想知道如何“给予”分叉进程一个与其“要求”不同的动态库。例如,如果分支“请求”库“foo.so”,则主进程“拦截”该库并提供“bar.so”。
考虑到我不太了解动态库是如何加载的,这很可能是不可能的。
您可以设置LD_LIBRARY_PATH
分叉进程指向execve
具有您的自定义版本的目录foo.so
。有关控制加载过程的共享库和环境变量的更多信息这里。