Linux下C的fork函数应用实例


题目:写出一段程序,创建4个子进程,每个子进程都打印“Hello”后立刻终止,父进程等待4个子进程都终止后,打印“Bye”,然后终止。

答:这里有两种结构的程序,各位看哪种顺眼就看哪种吧~

  1. #include<stdio.h> 
  2. #include<stdlib.h> 
  3. #include<sys/types.h> 
  4. #include<sys/wait.h> 
  5. int main() 
  6. {   char *msg = "Hello"
  7.     pid_t pid; 
  8.     int count = 0; 
  9.  
  10.     for(count = 0;count<4;count++) 
  11.     {   pid = fork(); 
  12.         if (0 != pid)   //父进程执行 
  13.             wait(NULL); 
  14.         else    //子进程执行 
  15.         {   printf("Child %d: ", count);     
  16.             puts("Hello"); 
  17.             exit(0); 
  18.         } 
  19.     } 
  20.     printf("Father : "); 
  21.     puts("Bye"); 
  22.     exit(0); 
  23.     /* 
  24.     fork1: 
  25.     pid = fork(); 
  26.     if (0 != pid)   //父进程执行 
  27.     {   wait(NULL); 
  28.         if (count < 3) 
  29.         {   count++; 
  30.             goto fork1; 
  31.         } 
  32.         else 
  33.         {   printf("Father : "); 
  34.             puts("Bye"); 
  35.         } 
  36.     } 
  37.     else    //子进程执行 
  38.     {   printf("Child %d: ", count);     
  39.         puts("Hello"); 
  40.     } 
  41.      
  42.     exit(0); 
  43. }*/ 

相关内容