2015-11-03 26 views
1

我的应用程序需要存储和交换不同进程之间的一些(一个)值。在应用程序启动之后,还需要此值(但不在系统重新启动后)。 我可以在文件中写入和读取此值并同步访问。该文件可能位于ramfs中。解决方案将工作,但我有我感觉我使用了错误的方法。交换和存储不同进程之间的值

有没有更好的轻量级解决方案呢?我错过了一个简单的方法吗? 我在考虑命名管道(mkfifo),但需要永远活跃的作家和读者?

+1

你可以使用共享内存与信号量.. – Haris

+0

你也可以使用memcached –

回答

1

你正在问什么inter-process communication。有许多方法用于进程间通信:

  • 低级共享存储器
  • 低级命名管道
  • 低级套接字
  • 远程过程调用机制(DCOMCorbaONC RPC等)
  • REST API
  • 分布式系统架构

你依赖于消息的复杂哪种方式最好的工作流程,在整个系统中,需要便携性等复杂

共享内存是非常低级别的方法和之间交换可以感受到最简单的解决方案“,因为它只是由指针指向的内存中的字节”。然而,它本质上是低层次的,因此使用起来也很乏味。这些工具没有普遍认同的C++接口,因此您只剩下低级C风格的API来访问和配置进程之间的共享内存。平台之间存在差异(POSIX是一种方式; Windows是另一种方式)。

Boost.Interprocess为您提供了一种访问共享内存机制的便携方式,旨在使using them simpler成为可能。

相关问题