Я попытался создать дерево процессов в C, как показано на рисунке здесь:
Обратите внимание, что дерево процессов должно быть создано так что он следует в алфавитном порядке.
Мой код:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main(int argc, char **argv)
{
pid_t b,c,d,e,f,g,h;
if(b = fork() == 0)
{
if(e = fork() == 0){}
else
{
if(f = fork() == 0)
{
sleep(1);
if(h = fork() == 0){}
}
}
}
else
{
if(c = fork() == 0)
{
sleep(0.5);
if(g = fork() == 0){}
}
else
{
if(d = fork() == 0){}
}
}
return 0;
}
Я использовал sleep, чтобы задержать процессы, чтобы они могли быть созданы в правильном порядке. Но я думаю, что это не правильный способ сделать это, кто-нибудь может показать мне правильный и более надежный способ?