前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原 进程小程序

原 进程小程序

作者头像
王果壳
发布2018-05-17 11:46:55
5740
发布2018-05-17 11:46:55
举报
文章被收录于专栏:王硕

首先是源码:

代码语言:javascript
复制
#include <stdio.h>  
#include <unistd.h>  
int main(int argc, char* argv[])  
{  
   fork();
   fork() && fork() || fork();
   fork();
   return 0;
}

问能生成多少个进程?

答:20个。

现在来分析一下这个函数:

1、第一个fork和最后一个fork都会被执行,这就会产生4个进程。

2、第3-5个fork,根据运算优先级,可以分为以下5种情况(暂时根据顺序将这三个fork命名为A、B、C):

    1)、A>0, B>0,这时不会运行C。     2)、A=0, 这时不会运行B, C>0      3)、A=0, 这时不会运行B, C=0     4)、A>0, B=0, C>0     5)、A>0, B=0, C=0

3、5 * 4 = 20

所以会生成20个进程包括自己的main进程。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档