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