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
运行过程: