我的程序必须创建多个孩子,我从终端获取孩子的数量。然后,我需要将它们分组,每个组都有不同的任务。
我创造了孩子,但问题是我不能给他们分开的任务,我不能区分孩子。我唯一能做的就是,每个孩子都在同一个部分工作(比如打印 pids)。
我怎样才能将它们分开并赋予它们特定的任务?
例如,前 4 个孩子应该调用一个函数,其他 3 个应该打印一些东西,其他 3 个应该写入一个文件等。
pid_t pid[10];
pid[0] = fork();
if(pid[0] > 0)
{
for(int i = 0; i < 9; i++)
{
if(pid[i] > 0)
{
pid[i + 1] = fork();
}
}
}
for(int i = 0; i < 10; i++)
{
if(pid[i] == 0)
{
printf("child %d, parent %d\n", getpid(), getppid());
exit(1);
}
}