[問題] 關於fork的問題
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
10/26 01:01, 1F
推
10/26 03:38, , 2F
10/26 03:38, 2F
推
10/26 12:15, , 3F
10/26 12:15, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章