由于程序的需要,我们需要在一台服务器上启动多个相似的子进程,如何做呢?
有两种可以尝试一下:
1.循环创建:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#define child 10
int main(int argc, char const *argv[])
{
pid_t pid;
for (int i = 0; i < child; ++i)//创建子进程个数
{
if (pid=fork()==0)//判断是否为子进程
{
printf("子进程%d:%d\n",i+1,getpid());
return 0;//结束子进程
}
waitpid(pid,NULL,WUNTRACED);//等待当前子进程结束
}
printf("\n");
printf("父进程:%d\n",getpid());
return 0;
}
2.递归创建
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#define child 5//宏定义子进程个数
int child_child(int n);
int main(int argc, char const *argv[])
{
//pid_t pid;
child_child