[理工] 作业系统

楼主: raysun011081 (sanfrain011081)   2018-10-05 01:04:41
http://i.imgur.com/HkWsSrg.jpg
想请问为什么会有55这个组合,谢谢
作者: plsmaop (plsmaop)   2018-10-06 10:17:00
void man是不好ㄉ写法ㄛMainhttps://www.google.com.tw/amp/s/www.peterdavehello.org/2014/10/void-main-int-main-in-c-and-cpp/amp/https://bit.ly/2BYUTL2
作者: ty502502   2018-10-05 01:08:00
两次的printf都是在最后就会变55了
作者: Aa841018 (andrew)   2018-10-05 07:17:00
子先进,5++=6,父再进,这时c=6,6--=5,最后同时印出!
楼主: raysun011081 (sanfrain011081)   2018-10-05 08:10:00
了解,谢谢
作者: KWire (Zbra)   2018-10-05 17:34:00
为什么 fork 出来的 child process 会影响全域变量?man fork明确说到父子程序run in separate memory spaces所以不是 fork 完的父子程序都应该要有一份 c 的副本吗?
作者: kcilao110779 (kcilao)   2018-10-05 17:40:00
因为全域变量是存在shared memory中,你做读写是在这个共用的memory去存取不是在各自的seperate memory各自有一个c值的副本每次,可是最后c做完运算时要assign回memory中*每次=没错
作者: KWire (Zbra)   2018-10-05 21:33:00
哪个部分使 c 在父子程序间有 shared memory 的行为?c 应该位于父程序内存的 .data 段该内存段fork时不是会复制给子程序,因此两个是独立的?fork 完之后两者看到的c就不同,或至少是 COW 的吧?
作者: flirmnave (焰离雨星)   2018-10-05 23:58:00
记得课堂上 是说要考这个 会直接假设那个变量是共享的
作者: nannnnn (nannnnn)   2018-10-05 23:59:00
我也记得全域变量 父子行程是分开的两份 有空写一份跑跑看

Links booklink

Contact Us: admin [ a t ] ucptt.com