【问题标题】:Isolating and multiply instantiating a C library in-process在进程中隔离和多次实例化 C 库
【发布时间】:2011-10-28 22:37:16
【问题描述】:

我们有一个 C 库(.lib windows 和 .a linux),它只允许创建单例并且在实例化后也不能正确关闭(内存泄漏和线程保持活动状态)。

重写它并找出错误,有没有一种简单的方法可以在进程中隔离这种行为不端的代码,从而可以消除单例限制,并且可以将不干净的 tidyup 沙盒化?

我主要对任何进程中的选项感兴趣,如果确实有的话。一个单独的过程显然可以解决它,但会产生架构开销以允许远程控制库,除非有非常低影响的解决方案(它具有广泛的 API,因此维护大量的胶水并不是特别有吸引力)。

【问题讨论】:

  • 简洁地说 - 不。如果库所有者不合作,从长远来看,重写可能是最容易的。

标签: c++ c ipc


【解决方案1】:

抱歉,没有简单方法可以做到这一点。沙盒行为不良的库通常使用单独的进程完成,您已经建议自己这样做。像 Protocol Buffers 这样的 IPC 工具可能有助于定义和实现 IPC 协议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 2021-04-04
    相关资源
    最近更新 更多