作者raysun011081 (小海豹)
看板Grad-ProbAsk
標題[理工] 作業系統
時間Fri Oct 5 01:04:41 2018
http://i.imgur.com/HkWsSrg.jpg
想請問為什麼會有55這個組合,謝謝
-----
Sent from JPTT on my HTC_U-1u.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.232.93
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1538672686.A.D6C.html
1F:推 ty502502: 兩次的printf都是在最後就會變55了 10/05 01:08
2F:推 Aa841018: 子先進,5++=6,父再進,這時c=6,6--=5,最後同時印出 10/05 07:17
3F:→ Aa841018: ! 10/05 07:17
4F:→ raysun011081: 了解,謝謝 10/05 08:10
5F:推 KWire: 為什麼 fork 出來的 child process 會影響全域變數? 10/05 17:34
6F:推 KWire: man fork明確說到父子程序run in separate memory spaces 10/05 17:36
7F:推 KWire: 所以不是 fork 完的父子程序都應該要有一份 c 的副本嗎? 10/05 17:39
8F:推 kcilao110779: 因為全域變數是存在shared memory中,你做讀寫是在 10/05 17:40
9F:→ kcilao110779: 這個共用的memory去存取不是在各自的seperate memor 10/05 17:40
10F:→ kcilao110779: y 10/05 17:40
11F:→ kcilao110779: 各自有一個c值的副本每次,可是最後c做完運算時要as 10/05 17:42
12F:→ kcilao110779: sign回memory中 10/05 17:42
13F:→ kcilao110779: *每次=沒錯 10/05 17:42
14F:→ KWire: 哪個部分使 c 在父子程序間有 shared memory 的行為? 10/05 21:33
15F:→ KWire: c 應該位於父程序記憶體的 .data 段 10/05 21:34
16F:→ KWire: 該記憶體段fork時不是會複製給子程序,因此兩個是獨立的? 10/05 21:36
17F:推 KWire: fork 完之後兩者看到的c就不同,或至少是 COW 的吧? 10/05 21:40
18F:→ flirmnave: 記得課堂上 是說要考這個 會直接假設那個變數是共享的 10/05 23:58
19F:推 nannnnn: 我也記得全域變數 父子行程是分開的兩份 有空寫一份跑跑 10/05 23:59
20F:→ nannnnn: 看 10/05 23:59
21F:推 plsmaop: void man是不好ㄉ寫法ㄛ 10/06 10:17
22F:→ plsmaop: Main 10/06 10:17
24F:→ plsmaop: g/2014/10/void-main-int-main-in-c-and-cpp/amp/ 10/06 10:17