[問題] fork問題
int value=10;
int main()
{
pid.t,pid;
pid=fork;
if(pid==0)
{
value+=15;
printf( "CHILD value=%d",value);/*LINE A*/
}
else if(pid>0)
{
wait(NULL);
value+=3;
printf( "Parent value=%d",value);/*LINE B*/
exit(0);
}
}
一個關於fork的程式片段
在LINE A很明確是child的value是10+15=25
但是在LINE B這裡
我的認知是在parent不會進入if.
而且parent跟child所用的value是不一樣的.
所以value還是10
在else if 裡面的value+=3以後印出來的值應該是13
但是正解是寫18
請問是怎麼出現的?
手上沒有環境可以執行fork....感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.23.114
→
10/23 13:40, , 1F
10/23 13:40, 1F
→
10/23 14:04, , 2F
10/23 14:04, 2F
推
10/23 14:08, , 3F
10/23 14:08, 3F
→
10/23 14:51, , 4F
10/23 14:51, 4F
→
10/23 14:51, , 5F
10/23 14:51, 5F
→
10/23 20:11, , 6F
10/23 20:11, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章