看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《gn00618777 (123)》之銘言: : 98年中央資工 : #include<sys/types.h> : #include<stdio.h> : #include<unistd.h> : int value=10; : int main() : { : pid_t pid; : pid=fork(); : if(pid==0){ : value+=15; : } : else if(pid>0){ : wait(NULL); : printf("PARENT:value=%d",value); /*LINE A*/ : exit(0); : } : } : @@這題我是覺得奇怪 父親那邊有wait表示要等子完成,可是父親等子完成,要是兒子做完了一定要回傳一個 值給父親他才知道兒子做完了他父親才可繼續做阿... 我記得洪x也有講過兒子如果執行exclp()的話,他裡面有內建的exit會回傳給父親 好讓他知道兒子做完了,但這題他只是一般的執行,兒子程式後面沒有寫exit(0) 那這樣父親不就不知道兒子到底做完了沒有..所以應該父親會卡在wait(NULL)那邊阿 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.138.109.190
kkman0120:就當作他會傳吧 不然這樣講的話題目這樣出不就沒結果了 02/12 00:30
gn00618777:那我這樣說合理嗎? 02/12 00:33
gn00618777:還有fork之後父與子的code section是不是一樣? 02/12 01:18
gn00618777:所以子和父所看到的所有程式碼都一樣包括上面的include 02/12 01:19
gn00618777:只是data section不同? 這是我看講義的想法 02/12 01:19
gn00618777:請問是正確的嗎? 02/12 01:19
ie925155:如果父親等兒子的話就表示兒子做父親的事 所以code 02/12 01:51
ie925155:section 是一樣的 02/12 01:51
ie925155:雖然你推論的有道理但是考試還是會假設有傳吧... 02/12 01:52
ie925155:還有疑慮的話寫出來給教授看你的疑慮分兩個寫阿 02/12 01:52
gn00618777:喔喔 ~~ 02/12 11:42