下面的代码是否运行两个子进程,从 C++ 中的单个父进程并行执行

Does the following code runs two child process executing in parallel from a single parent process in C++?

本文关键字:C++ 子进程 单个父 并行执行 进程 两个 是否 代码 运行      更新时间:2023-10-16

我已经读到fork可用于运行两个子进程,C++中说明如何创建两个子进程从单个父进程并行执行C++?;但是,没有示例来创建我自己的实验。因此,我使用了以下代码,但我不确定这两个进程是否并行执行。此外,由于任务是从两个设备捕获数据,因此需要在不同的终端中运行它们,我唯一想到的是使用以下行:

system("xterm -e ./task1"); 

但是,一旦执行了以下输出,则 sh: 1: term: not found

我将感谢您抽出时间提供任何建议或指导

#include <iostream>
#include <stdlib.h> 
using namespace std;
int main(int argc, char **argv)
{
  cout << "--beginning of program" << endl;
    int counter = 0;
    pid_t pid = fork();
    if (pid == 0)
    {
        // child process
        system("./task1");
cout << "child process" << endl;
    }
    else if (pid > 0)
    {
        // parent process
                system("./task2");
cout << "parent process" << endl;
    }
    else
    {
cout << "fork() failed!n" << endl;
        return 1;
    }
    cout << "--end of the program" << endl;
    return 0;
}

问题标题意味着您认为此代码创建了两个子进程和一个父进程,总共三个进程,而问题正文暗示您认为有一个父进程和一个子进程。 我不清楚你到底相信哪一个。

可以肯定的是:此代码将创建一个与父进程并行运行的额外子进程,总共有两个进程。