看板 Grad-ProbAsk 關於我們 聯絡資訊
在看洪逸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()那個區塊就不會做了,不是嗎?) 麻煩了 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.52.101.134 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1548758231.A.0EC.html ※ 編輯: lionccc (27.52.101.134), 01/29/2019 18:37:55
sooge: fork建立成功後 OS會送i=0給child 送i>0的一個數字給parent01/29 18:54
sooge: 所以那行else就是parent在做的事01/29 18:58
※ 編輯: lionccc (27.52.101.134), 01/29/2019 19:07:02
sooge: 和child無關 不知道有沒有回答到你 你很像把else和else if 01/29 19:07
sooge: 以為是二擇一,其實是child和parent各自的程式碼 01/29 19:07
lionccc: 嗯嗯我把它搞成2擇1了QQ 這樣我懂了!!謝謝S大 01/29 19:11
maple205: 借問,如果題目問創了幾個process 01/29 19:23
maple205: 要把main算進去嗎? 01/29 19:24
blueskier: 看題目怎麼問,如果單純是問創了幾個就不用算進去 01/29 19:28
sdfg014025xx: 選擇題看題目 非選可以自己假設 01/29 19:36
imadog: 洪逸好像都會算欸 我記得他都算total 01/29 21:07
imadog: 如果問法是how many process are created 要算main嗎? 01/29 21:09
rockieloser: 要吧 如果是new才不算? 01/29 21:11
Leaving: 交大99OS有一題有算(答案是729的那題) 01/29 21:16