fork()输出

来源:互联网 发布:python xrang 编辑:程序博客网 时间:2024/05/27 20:35
#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次

原创粉丝点击