码迷,mamicode.com
首页 > 系统相关 > 详细

进程小程序

时间:2015-08-27 13:43:05      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

首先是源码:

#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进程。

进程小程序

标签:

原文地址:http://my.oschina.net/Suregogo/blog/497752

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!