我知道代码有点凌乱,但是我是一个初学者,尽管我尝试过,但是我对许多关于进程的事情还是不了解。我正在等待有关该代码的建议,以及该代码是否正确的意见。预先谢谢你。
答案 0 :(得分:2)
您可能希望将任务分解为原始步骤:
示例:
awscli
输出:
export AWS_S3_ENDPOINT=""
export AWS_DEFAULT_REGION=""
答案 1 :(得分:1)
如果您为每个pid使用自己的pid变量(例如p1,p2 ...),则可能不会那么混乱。 如果您评论哪个进程正在运行分支,也许会有所帮助:
pid_t p1, p2, p3, p4, p5, p6, p7;
p1 = getpid();
p2 = fork();
if (p2 != 0)
{
// P1 runs this branch
p3 = fork();
if (p3 == 0)
{
// P3 runs this branch
p4 = fork();
if (p4 == 0)
{
// P4 runs this branch
p5 = fork();
if (p5 != 0)
{
// P4 runs this branch
p6 = fork();
if (p6 != 0)
{
// P4 runs this branch
p7 = fork();
}
}
}
}
}
您的代码中可能还有其他问题。但例如:
// create child#1
fork();
// create child#2
fork();
// create child#3
fork();
...将生成7个孩子的树。
如果您正在创建一个认真的程序(而不仅仅是玩fork
),那么您需要更好地检查fork()
的结果,因为它也会失败。