LD_PRELOAD 后如何卸载库?
How do I unload a library after it is LD_PRELOAD'ed?
我们 LD_PRELOAD 一个用于某些功能的库,如果我想禁用该功能并卸载该库,有没有办法做到这一点?我 不想 使用 RTLD,它必须是 LD_PRELOAD 所以不要建议 dlsym。
另一个用例是 LD_PRELOAD 进程创建的任何子进程也具有我不想要的相同环境。有什么办法可以做到吗?
您可以将变量重置为空字符串。
在 C 中你可以这样做:
int ret = unsetenv("LD_PRELOAD")
此外,您可以使用 setenv
从代码内部设置它
我们 LD_PRELOAD 一个用于某些功能的库,如果我想禁用该功能并卸载该库,有没有办法做到这一点?我 不想 使用 RTLD,它必须是 LD_PRELOAD 所以不要建议 dlsym。
另一个用例是 LD_PRELOAD 进程创建的任何子进程也具有我不想要的相同环境。有什么办法可以做到吗?
您可以将变量重置为空字符串。
在 C 中你可以这样做:
int ret = unsetenv("LD_PRELOAD")
此外,您可以使用 setenv
从代码内部设置它