gpt4 book ai didi

linux - 使用 dlopen 重新加载动态库时如何将全局变量保留在动态库中

转载 作者:太空宇宙 更新时间:2023-11-04 04:12:36 24 4
gpt4 key购买 nike

我尝试使用dlopen加载带有RTLD_NODELETE标志的动态库,以保留全局变量并确保下次我使用dlopen重新加载它时它们不会被重新启动。

但是当我想在库内的某些函数更新时重新加载库时,dlopen(在重新加载之前,我调用了接口(interface)dlclose)似乎不起作用。这些函数使用相同的旧代码运行。

所以我现在很困惑。

当使用dlopen重新加载动态库时,如何将全局变量保留在动态库中。(更新函数但保持变量不变。)

最佳答案

so i am confused now.

这正是 RTLD_NODELETE 的含义:在这样的库上 dlclose 是(实际上)无操作。由于代码实际上的行为就好像dlclose从未被调用过,因此后续的dlopen也不会重新加载代码(它实际上变成了无操作)也就不足为奇了。

how can i keep global viriables in dynamic library when using dlopen to reload it. (update the functions but leave the virables not changed)

你不能。

关于linux - 使用 dlopen 重新加载动态库时如何将全局变量保留在动态库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18372797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com