您的位置:首页 > 其它

浅谈对fork函数的理解

2012-04-19 20:08 211 查看
fork函数是用来创建进程时进行调用的系统函数,调用成功会有两个返回值,若调用不成功会返回-1;如果我们想对创建的进程进行操作就需要从它的反值入手,如果返回值为0这该进程为子进程其它则为父进程,一般fork函数会与wait函数一起用 wait函数是用在父进程中等待子进程死亡的,子进程死亡则wait成非阻塞函数,相反则阻塞。下面来看fork函数的嵌套调用:

#include<stdio.h>

#include<wait.h>

int main()

{

pid_t pid;

pid_t zpid;

pid=fork();

if(fork==-1)

{

printf("creat progress fail!!!\n ");

}

else if(pid==0)//该进程为子进程



zpid=fork();

if(zpid==-1)

{

printf("creat progress fail!!\n");

}

else if(zpid==0)

{

while(1);

//这是父进程中的子进程。

}

else

{

printf("this is father progress!\n");

wait(NULL);

//这表示的是父进程里要执行的东西 跟外面的fork创建的父进程是同级别的。

}

while(1);//让子进程一直执行



else

{

printf("this is father progress!\n");

wait(NULL);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: