强制重新加载动态链接库

时间:2014-03-09 18:12:45

标签: c++ linux shared-libraries dynamic-linking

我使用的动态链接第三方库有副作用:

从库内部调用函数时,它会保存一个状态。 这可能导致库在反复调用相同的函数时返回不同的答案(虽然逻辑上相同)。

我想要做的是将库重新加载到内存:强制它丢失所有状态并启动一个干净的页面 - 这样,每次我调用库时,我都会得到确切的答复。

我假设一种方法是使用dlopen / dlclose,这可能会清理库中以前保存的任何状态 - 在每个dlopen上它会将库重新加载到内存中。

然而,如果我有很多调用库的话会使代码变得复杂(我现在需要为每个函数调用使用dlsym等)。

有一种神奇的方法可以将特定/所有库重新加载到内存中吗?当我再次访问该库时,它会将其重新加载到内存中(按需 - 就像刚开始时一样)。

谢谢, 伊泰

0 个答案:

没有答案