#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
int main(){
int i = 0;
pid_t pid;
for(i = 0; i<3; i++)
{
pid = fork();
//这里给break掉 是为了子进程重复创建子进程
if(pid == 0){
break;
}
}
//第一个子进程
if(i == 0){
//TODO
}
//第二个子进程
if(i == 1){
}
//第三个子进程
if(i == 2){
}
//父进程
if(i == 3){
}
return 0;
}
父进程死了,子进程不会死,不会死.会继续执行.
waitpid
#include <sys/types.h>
#include <sys/wait.h>
/*
参数pid:
>0 回收指定ID的子进程
-1 回收任意子进程(相当于wait)
0 回收和当前调用waitpid一个组的所有子进程
< -1 回收指定进程组内的任意子进程
*/
pid_t waitpid(pid_t pid, int *status, int options);