在Linux编程中,如何在两个不相关的用户进程之间共享数据?

时间:2013-08-13 01:43:24

标签: linux shared-libraries shared-memory

我被赋予了编写Linux共享库的任务,两个或多个进程可以使用它们在它们之间共享数据。我很困惑我如何在不相关的进程之间共享数据,因为它们不共享文件句柄,内存空间或其他任何东西。有没有人知道两个或多个进程如何通过同一个库在它们之间共享数据?

我还需要为库编写API。我提出了API,但我不知道如何完全实现它。

API如下所示:

library.registerProcess(name) - registers process in library
library.createSharedData(size) - creates shared data of size (in bytes)
library.getSharedData(name) - get shared data of process by name

现在process1可以调用library.registerProcess('process1')。然后process2可以调用library.registerProcess('process2')

现在,process1可以调用library.createSharedData('1mb')来创建大小为1mb的共享数据区域。

Process2现在可以调用library.getSharedData('process1'),它返回process1共享数据(某些对象或结构可能包含可以访问的内存的指针)。

我真的很困惑两个不相关的处理器如何谈论和使用这个API。

0 个答案:

没有答案