fork()函数个人理解

1. 个人理解

fork()函数的作用是对进程的复制,fork()函数作用之后会生成父子两个进程,父进程其实就是原来的进程,子进程就是复制出来的那个进程

m=fork();
父进程的返回值m=子进程的进程号,m>0
子进程的返回值m=0

2. 作用顺序

下面这段代码是在做课程实验的时候用到的一段代码

#include <stdio.h>

int main()
{
    int m,n,k;
    m=fork( );
    printf( "1pid: %d\t" ,getpid( ) );
    printf( "The return value of fork( ) : %d\tm=%d\n",m,m );


    n=fork( ) ;
    printf( "2pid:%d\t" ,getpid( ) ) ;
    printf ( "The return value of fork ( ) : %d\tm=%d\tn=%d\n" ,n,m,n) ;

    if (m>0&&n>0){
        k=fork( ) ;
        printf("3pid:%d\t" , getpid() ) ;
        printf ( "The return value of fork ( ) : %d\tm=%d\tn=%d\n",k);
    }
}

运行结果:

1pid: 61698	The return value of fork( ) : 61699	m=61699
2pid:61698	The return value of fork ( ) : 61700	m=61699	n=61700
3pid:61698	The return value of fork ( ) : 61701	m=2083555840	n=10
[root@localhost Exper1]# 1pid: 61699	The return value of fork( ) : 0	m=0
2pid:61699	The return value of fork ( ) : 61702	m=0	n=61702
2pid:61700	The return value of fork ( ) : 0	m=61699	n=0
3pid:61701	The return value of fork ( ) : 0	m=2083555840	n=10
2pid:61702	The return value of fork ( ) : 0	m=0	n=0

运行过程:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值