作者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/cn.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