C++ 如何使用fork创建并行子进程
我正在努力实现以下目标: 我打算创建N个并行子进程 我尝试了以下方法来创建5个子进程:C++ 如何使用fork创建并行子进程,c++,linux,process,fork,C++,Linux,Process,Fork,我正在努力实现以下目标: 我打算创建N个并行子进程 我尝试了以下方法来创建5个子进程: pid_t pid; for (int i = 0; i < 4; ++i) { pid = fork(); if (pid) { //Parent } else if (pid == 0) { cout<<"Child: "<<getppid()<<endl; } else { co
pid_t pid;
for (int i = 0; i < 4; ++i)
{
pid = fork();
if (pid) {
//Parent
} else if (pid == 0) {
cout<<"Child: "<<getppid()<<endl;
} else {
cout<<"fork error\n";
}
}
但似乎我得到的子进程比我需要的多。还有一点是,不是所有的子进程都来自同一个父进程,也就是说,它们有不同的父进程
这样做是否正确?如果是,怎么做?您的孩子正在恢复循环并为自己的孩子分叉。您应该在子进程中的
cout
之后添加类似中断的内容。建议:您是否注意到的“fork error\n”
是死代码?另外,cout
是c++
。什么是死代码?对于cout
处于c++
中并不重要检查if..else
循环条件。失败时,fork()
返回-1
。您必须相应地更改您的条件检查。“对于C++中的CUT没有关系”…这是真的,但是你说你在c语言中,根本不存在cout
Child: 3636
Child: 3632
Child: 28287
Child: 3642
Child: 28287
Child: 28287
Child: 3633
Child: 28287
Child: 28287
Child: 28287