我想知道如何在不使用輸入輸出到文件系統或外部數據庫的情況下讓存儲容器在多個執行時間(運行)內不會丟失內容的最佳解決方案。跨越多次運行的持久存儲
說我有一個類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主機上。
這聽起來很困難。你能告訴我們更多關於「多次運行」的含義嗎?這些會有關係嗎?他們會以緊密的順序運行嗎?使用小文件存儲信息可能會更容易。 – 2011-05-12 13:38:02