最近小弟在读OS, 用C++在ubuntu上做了一些练习, 发现一个很奇怪的地方
code1跟code2差别在else statement, 其中1代表一个process(包含test2自己)
但code1只是多了一个else却造成output有8个1(比code2多了2个), stack overflow
上面也没有类似例题, 想了满久也不确定是什么机制造成else那边会再多生出2个
process, 先谢谢大家
[Code1_output: 11111111]
void test2(){
int i;
fork();
if(fork()>0){
fork();
}
else if(fork()==0){}
cout<<" 1 "; //输出一个1代表1个process
}
[Code2_output: 111111]
void test2(){
int i;
fork();
if(fork()>0){
fork();
}
// else if(fork()==0){}
cout<<" 1 "; //输出一个1代表1个process
}