我已经读过,fork可以用来运行两个并行执行的子进程,它来自C ++中的单个父进程,如How to create two child process executing parallel from a single parent process in 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;
}
答案 0 :(得分:0)
问题标题意味着您认为此代码创建了两个子进程和一个父进程,总共三个进程,而您的问题正文暗示您认为有一个父进程和一个子进程。我不清楚你真正相信哪一个。
确定:此代码将创建一个与父项并行运行的额外子进程,总共有两个进程。