1. fork()函数
通过系统调用创建一个与原来进程几乎完全相同的进程,这个新的进程就成为子进程。一个进程调用fork()函数以后,系统先给新的进程分配资源,例如存储数据可代码空间。然后把原来进程的值都复制到新的进程当中,只有少数值与原来不同。
调用fork()函数之后,fork()之后的代码一定是两个进程同时执行,而之前的代码已经由父进程执行完毕。
for()函数返回值:返回一个大于0的值给父进程,返回0给子进程,返回其他值说明fork()失败。
#include<unistd.h>
#include<stdio.h>
int main()
{
//--1.Create child_process 1
int pid_child1 = fork();
//--2.print father_process id
if(pid_child1==0)
printf("father_process id is:%d\n",getpid());
//--3.Create child_process 2
else if(pid_child1>0)
{
//--(1)Create child_process 2
int pid_child2 = fork();
//--(2)print child_process 1 id
if(pid_child2==0)
printf("child_process 1 id is:%d\n",getpid());
//--(3)print child_process 1 id
else if(pid_child2>0)
printf("child2_process 2 id is:%d\n",getpid());