作者martinliou (大佬)
看板C_and_CPP
標題[問題] 關於fork的問題
時間Tue Oct 26 00:51:39 2010
int value=5;
int main()
{
pid.t,pid;
pid=fork;
if(pid==0)
{
value+=15;
exit(0);
}
else if(pid>0)
{
wait(NULL);
printf( "Parent value=%d",value);
exit(0);
}
}
int c=5;
void main()
{
int pid;
pid=fork();
if(pid==0)
c=c+1;
else if (pid>0)
{
wait(NULL);
c=c-1;
}
printf("c=%d\n");
exit(0);
}
以上是兩個關於fork()的片段程式
上一題之value因為child與parent資料非共享
所以印出來的結果是5
下一題應該也是依樣畫葫蘆才對
若子程序跟父程序的資料沒共享
那答案應該是c=6 c=4才對
為什麼正確答案是c=6 c=5呢
煩請版上的高人能幫忙指點迷津 3Q~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.66.86
※ 編輯: martinliou 來自: 140.113.66.86 (10/26 00:52)
→ prismwu:我覺得是6,4 我剛幫你跑也是6,4 10/26 01:01
推 kkbbs:一定是6 4 .. 10/26 03:38
推 sunneo:正確答案? 答案錯了 10/26 12:15