我想從一個主進程創建多個進程。我知道我想使用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