我想在下面构建类似的东西,一个链接到两个进程的共享库,当一个进程更新共享库中的内部结构时,另一个进程应该能够读取它。
在此之前,我想知道这是否可能?
或者共享库将是这两个不同进程的两个不同实例吗?
shared library:
---------------
------------- mod.c file -------
struct p {
uint pid,
...
}
mod_register ( uint pid, ...)
{
... update struct p;
}
Process A{
mod_register(pid, etcc.. );
}
Process B {
.. read struct p;
}
答案 0 :(得分:0)
您需要创建的是共享内存部分。执行此操作的过程与系统无关。您的库将使用系统服务创建具有一些标识符的共享内存区域。这些创建了一系列具有该标识符的内存页面,可以映射到多个进程。然后,使用该库的每个进程将进入可以交换数据的相同共享存储区域。您必须实现自己的同步方法。
如果你希望内存是持久的(即没有进程访问它时仍然存在),那就是另一个独立于系统的任务。