永发信息网

各位 int main( ) { fork( ); fork( ); fork( ); printf("hello world"); return 0; } 求结果,,及原因?

答案:2  悬赏:70  手机版
解决时间 2021-12-03 19:15
  • 提问者网友:星軌
  • 2021-12-03 16:25
各位 int main( ) { fork( ); fork( ); fork( ); printf("hello world"); return 0; } 求结果,,及原因?
最佳答案
  • 五星知识达人网友:我住北渡口
  • 2021-12-03 17:19
printf前面有n个fork,那么这里可以求一个递推式出来
由于从n到n-1是主进程走n-1的分支,子进程也走n-1的分支,所以有以下关系
要求F(n)=2F(n-1),F(0)=1
所以F(n)=2^3=8
结果是打印8次hello world
全部回答
  • 1楼网友:想偏头吻你
  • 2021-12-03 18:20
8个hello world
一个fork产生一个完全一样的子进程,3次最后有了8个进程,他们的stdout都与原先的父进程一样的,所以最后都输出在终端上
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯