标签:ror col pac span 分析 ace 重要 child parent
1.进程创建
先上代码:
1 #include"iostream" 2 #include<unistd.h> 3 int main() 4 { 5 using namespace std; 6 pid_t pid; 7 cout<<"parent have!"<<endl; 8 pid = fork();//执行fork的时候到底发生了什么? 9 if(pid == -1)//错误创建 10 { 11 perror("fork error"); 12 _exit(1); 13 } 14 else if(pid == 0)//子进程 15 { 16 17 cout<<"i am child,pid = "<<getpid()<<" my parent is:"<<getppid()<<endl; 18 } 19 else//父进程 20 { 21 // sleep(1); 22 cout<<"i am parent,pid = "<<getpid()<<" my parent is:"<<getppid()<<endl; 23 } 24 cout<<"both have!"<<endl; 25 return 0; 26 }
运行结果:
程序及结果分析:
2.创建多个子进程
1 #include"iostream" 2 #include<unistd.h> 3 int main() 4 { 5 using namespace std; 6 pid_t pid; 7 cout<<"parent have!"<<endl; 8 for(int i = 0;i < 5;i++) 9 { 10 pid = fork();//执行fork的时候到底发生了什么? 11 if(pid == 0) 12 { 13 // cout<<"the ID of son "<<i+1<<":"<<getpid()<<endl; 14 break;//这个很重要,思考为什么 15 } 16 } 17 18 if(pid == -1)//错误创建 19 { 20 perror("fork error"); 21 _exit(1); 22 } 23 else if(pid == 0)//子进程 24 { 25 //sleep(1); 26 cout<<"i am child,pid = "<<getpid()<<" my parent is:"<<getppid()<<endl; 27 } 28 else//父进程 29 { 30 sleep(1); 31 cout<<"i am parent,pid = "<<getpid()<<" my parent is:"<<getppid()<<endl; 32 } 33 cout<<"both have!"<<endl; 34 return 0; 35 }
程序运行结果:
程序及结果分析:
父子进程共享
共享遵循的原则:读时共享写时复制原则
标签:ror col pac span 分析 ace 重要 child parent
原文地址:https://www.cnblogs.com/shaonianpi/p/11442915.html