楼主:
lionccc (菠菜粗粗窝)
2019-01-29 18:37:09在看洪逸fork的第一个例子就卡住了......
void main()
{
int i ;
i = fork();
if(i < 0)
{
printf("fork failed")
exit(-1)
}
else if (i == 0) //child
{
execlp("......")
}
else // parent
{
wait()
printf("child complete")
exit(0)
}
}
想请问
fork如果成功,系统回传0之后,
child process执行完那个命令以后,系统还会再回传大于0的值?
如果是的话,想问程式跑的流程是如何
(我的想法是:他i只有一个值,假设他就是等于0了,只会执行那个命令,然后下面wa
it()那个区块就不会做了,不是吗?)
麻烦了 谢谢各位
作者:
sooge (老衲)
2019-01-29 18:54:00fork建立成功后 OS会送i=0给child 送i>0的一个数字给parent所以那行else就是parent在做的事和child无关 不知道有没有回答到你 你很像把else和else if以为是二择一,其实是child和parent各自的程式码
楼主:
lionccc (菠菜粗粗窝)
2019-01-29 19:11:00嗯嗯我把它搞成2择1了QQ 这样我懂了!!谢谢S大
作者:
maple205 (艾瑞克)
2019-01-29 19:23:00借问,如果题目问创了几个process要把main算进去吗?
作者:
imadog (凹呜)
2019-01-29 21:07:00洪逸好像都会算欸 我记得他都算total如果问法是how many process are created 要算main吗?
作者: Leaving 2019-01-29 21:16:00
交大99OS有一题有算(答案是729的那题)