Linux下的C开发之fork()函数的趣味应用

来源:互联网 发布:销售管理系统源码 编辑:程序博客网 时间:2024/06/05 15:26

      Linux下的C的编程中的fork( )函数是学习中比较难理解的概念之一。初学者刚接触这类函数要多琢磨、深入理解fork( )函数的意义和创建过程,才能更好的掌握fork( )这类函数啦。(嘿嘿,当然这只是笔者我自己的观点啦)。下面本人想利用自己的对fork( )函数的理解,编写出来的fork( )函数的趣味应用之用fork( )创建的家族关系简化图。

       Patr1:先向大家展示用pstree命令显示出的效果吧:


      Part2:实现的代码截图:

#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
        pid_t a_a;
        a_a=fork();
        if(a_a==-1)
        {
                exit(-1);
        }else if(a_a==0)
        {
                pid_t a_a_a;
                a_a_a=fork();
                if(a_a_a==-1)
                {
                        exit(-1);
                }else if(a_a_a==0)
                {
                        while(1);
                }else
                {
                        while(1);
                }

        }else
        {
                pid_t a_b;
                a_b=fork();
                if(a_b==-1)
                {
                        exit(-1);
                }else if(a_b==0)
                {
                        pid_t a_b_a;
                        a_b_a=fork();
                        if(a_b_a==-1)
                        {
                                exit(-1);
                        }else if(a_b_a==0)
                        {
                                while(1);
                        }else
                        {
                                pid_t a_b_b;
                                a_b_b=fork();
                                if(a_b_b==-1)
                                {
                                        exit(-1);

                                }else if(a_b_b==0)
                                {
                                        while(1);
                                }else
                                {
                                        while(1);
                                }


                        }


                }else
                   {
                      while(1);
                   }
           }
        return 0;
}
     注:代码简易的表示出了家族关系的大概,要是发现错误的地方,要留言指出哦。。