0
我想創建一個進程樹,但這裏是我的輸出是:https://gyazo.com/a71f4e095b69080a6d6a11edd2c0df27 問題是我想使它看起來像我畫在右邊的圖,但可以似乎不知道如何。我正在打印每個子進程的父ID,然後這樣做後,我將從2開始刪除它們,然後是1(通過在5秒後發送SIGKILL信號)。 如何使流程樹看起來像所需的結果?這裏是我的代碼:C幫助創建一個進程樹
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main()
{
int root, t1, t2, i;
root = getpid();
printf("root %d\n", root);
for (i = 1; i < 3; i++)
{
t1 = fork();
//printf("%d\n", t1);
if(t1!=0)
{
t2 = fork();
}
if (t1 !=0 && t2 != 0)
{
break;
}
printf("child pid %d parent pid %d\n", getpid(), getppid());
}
sleep(10);
return 0;
}
謝謝!
如果我想從下往上刪除它們(所以刪除2的所有子進程然後殺掉1)我該怎麼做?我會用SIGKILL嗎?我嘗試過兩次運行SIGKILL,但它只打印「殺死」一次,然後退出程序,我不知道如何驗證它做了我想要的。 –