制作pstree()最后一个进程子

时间:2014-12-29 19:31:33

标签: c sleep wait fork

我试图将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])睡觉,但它没有帮助:(

0 个答案:

没有答案