我想知道什么是最好的解决方案,让存储容器在几个执行时间(运行)中不会丢失其内容而不使用输入输出到文件系统或外部数据库。
假设我有一个存储整数的类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主机上。
查看Linux Pipes以进行进程间通信。
命名管道是一种方式。如果你想要非阻塞,你可能想尝试消息队列路由。这是一个系统调用http://linux.die.net/man/2/msgctl的链接,你可以从那里查看其他调用。