fork函数main() { int i,pid; for(i=1;i<4;i++) if(pid=fork()); break; }

画出进程产生的家族树,,这个函数什么意思啊pid=fork(),每次pid会变化吗,怎样知道创建子进程成不成功啊。。求大虾... 画出进程产生的家族树,,这个函数什么意思啊pid=fork(),每次pid会变化吗,怎样知道创建子进程成不成功啊 。。求大虾 展开
 我来答
halo1014
2011-12-31
知道答主
回答量:31
采纳率:0%
帮助的人:10.3万
展开全部

这个函数是Unix创建进程的函数,具体可百度(返回值-1会不成功),pid每次都会变化

1.首先,

明确几点:第一,如果没有 if(pid=fork()); break;for循环会执行3次;第二,fork()函数会返回两个值,一个大于0的值(子进程的进程号),一个是0;第三,break跳出循环的话,一次都不会做;

2.解释流程实质:if中条件判断的时候,fork函数返回的两个值有一个是永远不成立的,所以:fork每次执行时,父进程的pid>0,跳出循环(不生孩子了),而子进程的pid=0,成为下一次循环的父进程(继续生孩子);

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式