看板 C_and_CPP 關於我們 聯絡資訊
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