Mam problem z zastąpieniem danego procesu funkcją execpl. Mam drzewko procesów i mam zastąpić jeden konkretny proces poleceniem pstree.
if ((g=fork())==0) {
printf("P1: %d PPID: %d \n",getpid(),getppid());
if ((h=fork())==0) {
printf("P4: %d PPID: %d \n",getpid(),getppid());
if ((i=fork())==0) {
printf("P10: %d PPID: %d \n",getpid(),getppid());
execlp("pstree", "pstree", "-p", "student", (char *)NULL);
sleep(1);
}
if ((j=fork())==0) {
printf("P9: %d PPID: %d \n",getpid(),getppid());
sleep(120);
}
sleep(120);
}
sleep(120);
}
To jest fragment kodu. I jak wyświetla mi się drzewo procesów to zastępuje proces ale umieszcza go w drzewku nie w tym miejscu.
Zamiana tzn. jeżeli umieszczę execlp w P9 nic nie zmienia. Chciałbym uzyskać pomoc. Dziękuję za ewentualne wskazówki.