我必须实现将同时(同时)运行一定数量的可执行文件(例如grep,echo等)的代码。可执行文件将以字符串形式给出,我已经对其进行了解析。该代码的要求是,一个可执行文件的输出是另一个可执行文件的输入。
我试图了解当可执行文件数量奇数时如何实现这一点。据我所知,fork函数将复制手头的代码。如果我将代码这样写:
for(int I=0; I<3; I++){
pid_t pid = fork();
}
然后当I==0
时,将产生1个孩子。当I==1
时,将产生2个孩子,类似地,当I==2
时,将产生4个孩子。如果我只允许执行在子进程中执行(pid==0
时),我仍然总共有7次执行,比我需要的执行多4次。