C++ 如何使用fork创建并行子进程

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

我正在努力实现以下目标:

我打算创建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 {
        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