我试图将pstree()函数作为最后一个进程子进程,但似乎无法做到。
我的代码:
int i, pid;
int mainPid = getpid();
for(i = 0; i < atoi(argv[1]); i++) {
pid = fork();
if(pid < 0) {
printf("Error");
exit(1);
} else if (pid == 0) {
printf("Child (%d): %d\n", i + 1, getpid());
sleep(1);
exit(0);
}
}
if(fork() == 0) {
char a[100];
sprintf(a, "%d", mainPid);
execlp("pstree", "pstree", "-c", a, NULL);
}else {
sleep(1);
}
我得到:
t1─┬─pstree
├─t1
├─t1
├─t1
├─t1
├─t1
├─t1
├─t1
└─t1
但我想要这样的事情:
t1─┬─t1
├─t1
├─t1
├─t1
├─t1
├─t1
├─t1
├─t1
└─pstree
我也试过推动最后一个进程为atoi(argv [1])睡觉,但它没有帮助:(