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