如何创建某个进程的多个子进程?(方式一)
相信大家都知道,在linux环境中,使用fork()函数来创建子进程.然而市面上的书籍往往都是告诉大家如何创建一个子进程,那么如何创建某个进程的多个子进程呢?好了,废话不多数了,请看如下代码(这里我们采用递归实现):
#include<stdio.h>#include<stdlib.h>#include<unistd.h>pid_t pid;/* * num:当前已经创建的子进程数 * max:需要创建的子进程数 */void createsubprocess(int num,int max){if(num>=max)return;pid=fork();if(pid<0){perror("fork error!\n");exit(1);}//子进程else if(pid==0){sleep(3);printf("子进程id=%d,父进程id=%d\n",getpid(),getppid());}//父进程else{num++;if(num==1)printf("父进程id=%d\n",getpid());if(num<max)createsubprocess(num,max);//此处加sleep是为了防止父进程先退出,从而产生异常sleep(5);}}int main(){int num=0;int max=3;createsubprocess(num,max);return 0;}
运行结果如下所示:
http://dl.iteye.com/upload/attachment/424971/a533eb7d-6760-30ca-9c6f-2062529d826b.jpg
页:
[1]