#include <iostream>
#include <unistd.h>
using namespace std;
void print();
void ecoh()
{
fork();
print();
return;
}
int main()
{
ecoh();
print();
pause();
return 0;
}
void print()
{
cout<<"Hello World!"<<endl;
}
这段代码会输出多少次“Hello World!”
执行结果输出4次
分析时先不管fork(),在没有fork()函数到情况下,这段代码输出"Hello World!"两次,添加fork()后,fork()执行时拷贝其父进程,父进程输出两次,拷贝到子进程同样输出两次,共4次
#include <iostream>
#include <unistd.h>
using namespace std;
void print();
void ecoh()
{
fork();
fork();
print();
return;
}
int main()
{
ecoh();
print();
pause();
return 0;
}
void print()
{
cout<<"Hello World!"<<endl;
}
这段代码多执行了一次fork(),主进程本身输出两次,第一个fork()执行拷贝,输出两次,第二个fork()执行时,其拷贝创建到子进程会输出4次,这段代码共输出8次