我想从一个主进程创建多个进程。我知道我想使用exec系列的一个功能,但它似乎并没有按照我的意图进行预成型。看起来,exec()是一个阻塞调用,或者我只是用它错了。总之,到代码:从主进程执行多个进程
const char* ROUTERLOCATION = "../../router";
int main(int argc, char** argv) {
manager manager;
vector<string> instructions = manager.readFile(argv[1]);
...
//file gives me the number of proceses i want to spawn and that value goes in
//rCount
for(int i = 0; i < rCount; i++){
cout << "creating:" << i << endl;
execl(ROUTERLOCATION, "",NULL);
}
}
我看到的输出是:
creating:0
HI!!!
然后一切正常退出。我不能使用execl()
产生多个进程吗?
此外,我想与这些进程中的每一个进行通信,所以我不希望在这些进程正在运行时被阻塞。
哪里'fork'打电话?你需要调用它,如果它表明你是子进程,那么你执行'exec'。父母继续跑步和分娩孩子。孩子们都会用自己想要运行的程序取代自己。 – paddy