C 杀死子进程的子进程
我现在的代码大概如下:
F)_XW}*X%Qif((child1_pid=fork())==0)
GFPn2F4AULinux伊甸园论坛{+|eB i_&d
while(1){:k:d0|s3}8b
if(child2_pid){#r7J2P S5?v.c#U
kill(child2_pid,SIGKILL);Linux伊甸园论坛*H'yu[+E,Fr+b
if(waitpid(child2_pid,NULL,0)<0)
E;Mj4G]www.linuxeden.com printf("kill child2_pid error=%d\n",child2_pid); i]r7xRl
elseLinux伊甸园论坛$G;g"AY `AC:`f
child2_pid=0;
"Q0^7gm'ge }
GBzD uFa5R if((child2_pid=fork())<0){
l:F A%m3LV printf("child2_pid fork error\n");Linux伊甸园论坛XfEiT&Zd
}else"EQN2H,vw
if(child2_pid==0){
i.gU"G~ if(execlp("ls ","ls",dir_name1,(char *)0)<0)www.linuxeden.com$S9R7glF
O1Uf
printf("exec show picture error\n");www.linuxeden.com2f0Zt} a*f
exit(0);
k6ttMg/NgP,U }elseH;q:g7I(C6vE*y
if(child2_pid){{.p
~^0`7Y\mXh
sleep(3);
1wVeS.r!z/rjwww.linuxeden.com }
9p-qG+Oj2Y wwww.linuxeden.com XS&G`6n4mn B0b
}Linux伊甸园论坛]/Q.@*X|KF
}else
B^}:q8u)O RC%\www.linuxeden.comif(child1_pid){
I&[I7o.P0U3QIlD Q g other_process();
l ~1i {`M K}]S9J(qU'zP~
k!Qv/~BT5w7`9|Sqwww.linuxeden.com在这里我的子进程里做了一个while(1)的循环,每隔3s钟显示系统某目录下的内容,不过在这里我有个问题想请教大家,因为我在父进程里一定条件下会调用kill杀死child1_pid进程,这个时候child2_pid 由于是child1_pid的子进程,请问child2_pid进程会死亡吗?child2_pid是随隔一段时间变化的,他会不会编程僵死进程啊?
|