[問題] 關於fork的問題

看板C_and_CPP (C/C++)作者 (大佬)時間15年前 (2010/10/26 00:51), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
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)

10/26 01:01, , 1F
我覺得是6,4 我剛幫你跑也是6,4
10/26 01:01, 1F

10/26 03:38, , 2F
一定是6 4 ..
10/26 03:38, 2F

10/26 12:15, , 3F
正確答案? 答案錯了
10/26 12:15, 3F
文章代碼(AID): #1CnRMVmj (C_and_CPP)
文章代碼(AID): #1CnRMVmj (C_and_CPP)