美文网首页
Linux系统调用fork

Linux系统调用fork

作者: 艾满 | 来源:发表于2021-07-16 16:10 被阅读0次
    //fork_test.c
    //Linux/Unix系统中内置头文件,包含了许多系统服务的函数原型,例如read、write和getpid函数等
    #include <unistd.h>
    #include <stdio.h>
    
    /** 
     * fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:
     *  1)在父进程中,fork返回新创建子进程的进程ID;
     *  2)在子进程中,fork返回0;
     *  3)如果出现错误,fork返回一个负值;
     */
    int main(int argc, char const *argv[])
    {
        pid_t fpid; //fpid表示fork函数返回的值  
        int count=0;  
        fpid=fork(); //返回值:根据是父进程还是子进程不同而值不同  
        if (fpid < 0)   
            printf("error in fork!");   
        else if (fpid == 0) {  //子进程返回值为0
            printf("我是子进程,getpid=%d,fpid=%d\n",getpid(),fpid);//getpid是获取当前进程的id,还有getppid是获取父进程的id 
            count++;  
        } else {  //父进程返回的是子进程的id;父进程里的当前id就是子进程里返回的进程id
            printf("我是父进程getpid=%d,fpid=%d\n",getpid(),fpid);  
            count++;  
        }  
        printf("统计结果是: %d\n",count);  
        return 0;
    }
    

    执行结果:


    image.png

    相关文章

      网友评论

          本文标题:Linux系统调用fork

          本文链接:https://www.haomeiwen.com/subject/ffsbpltx.html