c - 如何在两个应用程序之间共享一个共享库(*.so)实例

标签 c linux gcc shared-libraries

我目前创建了一个共享库(libshared.so),其中包含一个变量“a”,它将 由共享库api修改。我有两个应用程序 app1 和 app2。 app1 正在使用 共享库 api,它改变了“a”的值。现在同时运行 app2 时 应该看到更改后的值。 这违背了共享库的实际使用,作为共享的单独实例 将为每个应用程序创建库。 现在我想在两个 app1 和 app2 之间使用共享库的单个实例,这样 他们可以看到共享库的相同代码和数据段。 有什么可能的方法来实现这一点,通过改变 gcc 链接器标志

最佳答案

这些答案:

会打破您对共享库方法的期望。

我建议您看一下 Shared MemoryPOSIX API shmget

一个进程将充当服务器并创建共享内存并将共享内存 key 提供给客户端。

另一种方法是创建一个管道来在进程之间共享数据

你可以阅读 this page 以获得更多关于 linux 进程间通信的信息

关于c - 如何在两个应用程序之间共享一个共享库(*.so)实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35788924/

相关文章:

linux - 将服务器时间更改为 IST

c++ - 为什么 "-flto"静默 GCC 的警告 "stringop-truncation"

linux - 最小核心转储(堆栈跟踪+仅限当前帧)

objective-c - 非常简单的 Objective-C HTTP GET 请求代码无法编译

c - Unix top 命令列从另一个 C 程序中选择?

C:如何让线程相互通信?

c++ - 理解c函数指针

c++ - 何时以及如何对不同类型的文件进行读/写 block (即暂停您的程序)?

c - 使用C实现基数排序

c - MMX操作(加16bit没做)