多次运行的持久存储

问题描述 投票:2回答:3

我想知道什么是最好的解决方案,让存储容器在几个执行时间(运行)中不会丢失其内容而不使用输入输出到文件系统或外部数据库。

假设我有一个存储整数的类foo()。从main()我想调用一个添加整数的方法,该类不会忘记它以前的内容。

//
// Data storage accross different runs
// This should go into the daemon process
//

#include<iostream>
#include<list>

using namespace std;

class foo {
public:
  foo(int add): add(add) {}
  void store(int i) {
    vec.push_back( i + add);
  }
private:
  list<int> vec;
  int       add;
};

主函数应该检查已经运行的守护进程 - 如果没有启动它。

//
// Main program. Should check whether daemon runs already, if not starts it.
//

void main(int argc, char *argv[]) {

  // if (daemon is not running)
  //  start daemon( some_number )

  // call daemon::add( atoi(argv[1]) );
}

如何使用共享库或守护进程来做到最好?存储和调用程序位于同一Linux主机上。

c++ shared-libraries daemon
3个回答
0
投票

查看Linux Pipes以进行进程间通信。

http://linux.die.net/man/2/pipe


0
投票

命名管道是一种方式。如果你想要非阻塞,你可能想尝试消息队列路由。这是一个系统调用http://linux.die.net/man/2/msgctl的链接,你可以从那里查看其他调用。


© www.soinside.com 2019 - 2024. All rights reserved.