在前面,我们是采取递归方式实现的,现在我们采取另一种方式创建某个进程的多个子进程
代码如下所示:
#include<stdio.h> #include<stdlib.h> #include<unistd.h> /* * 创建指定数目的子进程 */ void createsubprocess(int num) { pid_t pid; int i; for(i=0;i<num;i++) { pid=fork(); //子进程或创建进程失败均退出 if(pid==0||pid==-1) { break; } } if(pid==-1) { perror("fail to fork!\n"); exit(1); } else if(pid==0) { printf("子进程id=%d,其对应的父进程id=%d\n",getpid(),getppid()); exit(0); } else { printf("父进程id=%d\n",getpid()); exit(0); } } int main() { int num=3; createsubprocess(num); return 0; }
运行结果如下所示: