Я пытаюсь создать это: parent разветвляет двух дочерних элементов, и каждый из них разветвляется на двух дочерних элементов, а затем parent вызывает функцию ps (), которая печатает pid, parentpid, состояние и имя активных процессов в системе.Вот моя попытка, и результат этого: Однако, это не печать структуры, которую я хотел.
Как я могу это исправить?Что я делаю неправильно?Спасибо!
if (fork()) { //p1
//parent
ps();
wait();
if (fork()) { //p1
//parent
wait ();
} else { //c2
//child
if (fork()) { //c2
//parent
wait();
if (fork()) { //c2
//parent
wait();
} else { //c4
//child
sleep(43);
exit();
}
} else { //c3
//child
sleep(43);
exit();
}
}
} else { //c1
//child
wait();
wait();
if (fork()) {
//parent //c1
//wait();
if (fork()) { //c1
//parent
//wait();
} else { //c6
//child
sleep(43);
exit();
}
} else { //c5
//child
sleep(43);
exit();
}
}
```
output:
It prints this:
1 1 S init
2 1 S sh
3 2 R pstest
4 3 Z pstest
5 1 S pstest
6 1 S pstest