LinuxÒÁµéÔ°ÂÛ̳'s Archiver

zhouliang55 ·¢±íÓÚ 2007-8-16 10:41

C ɱËÀ×Ó½ø³ÌµÄ×Ó½ø³Ì

ÎÒÏÖÔڵĴúÂë´ó¸ÅÈçÏ£º
q lG H"},TrF if((child1_pid=fork())==0) uoX;t9A7Mf)P1O#i
{gWtLBKn
     while(1){VUH!z Bb
           if(child2_pid){
X-o^%{ M'J               kill(child2_pid,SIGKILL);
%oQ'Dq/G.el&VJ               if(waitpid(child2_pid,NULL,0)<0)
&B-uIM-Z'y                      printf("kill child2_pid error=%d\n",child2_pid);               C~'@;MX:y\
              else
)`#G;znB#[+E                       child2_pid=0;(j0RK \o%XHv]_
          }
i:Z.q:vQr c           if((child2_pid=fork())<0){
0o;o['zyjrR0`                    printf("child2_pid fork error\n");
\BO|![,DK           }else
vI$v([v-a0q           if(child2_pid==0){
r/u+Qi dtH:B!a                if(execlp("ls ","ls",dir_name1,(char *)0)<0)*ncC$ni;a/e`
               printf("exec show picture error\n");
E_s;~h0N         exit(0);   
8sw/? NzW            }else
Zky^6D'W([.J z~            if(child2_pid){tm w1q}-M
                     sleep(3);5vTNd-E?
           }
8{I4gTV\            '@ p%SC S7J;K
     }^B ujS;pGO(N4i j
}elseUk%S/u,a8tfS/HG p@%V
if(child1_pid){
^+rkT#wU&[QJ       other_process();
@Z1kmJtV }
*M;pz&S&`~
7Y1xQ Mu~8y? ÔÚÕâÀïÎÒµÄ×Ó½ø³ÌÀï×öÁËÒ»¸öwhile(1)µÄÑ­»·£¬Ã¿¸ô3sÖÓÏÔʾϵͳijĿ¼ÏµÄÄÚÈÝ£¬²»¹ýÔÚÕâÀïÎÒÓиöÎÊÌâÏëÇë½Ì´ó¼Ò£¬ÒòΪÎÒÔÚ¸¸½ø³ÌÀïÒ»¶¨Ìõ¼þÏ»áµ÷ÓÃkillɱËÀchild1_pid½ø³Ì£¬Õâ¸öʱºòchild2_pid ÓÉÓÚÊÇchild1_pidµÄ×Ó½ø³Ì£¬ÇëÎÊchild2_pid½ø³Ì»áËÀÍöÂð£¿child2_pidÊÇËæ¸ôÒ»¶Îʱ¼ä±ä»¯µÄ£¬Ëû»á²»»á±à³Ì½©ËÀ½ø³Ì°¡£¿

flag ·¢±íÓÚ 2007-8-17 09:45

ÄãûÓÐץסÎÊÌâµÄ¹Ø¼ü£¬¹Ø¼üÊÇÈç¹û²»»ØÊյϰ£¬ÊǻὩËÀµÄ¡£¡£¡£¡£¡£

fishen ·¢±íÓÚ 2007-8-18 17:22

²»»á,Òª»ØÊÕ,child2_pidÊÇËæ¸ôÒ»¶Îʱ¼ä±ä»¯,ËùÒÔ£¬²»»á

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.