作者:
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的那題)