[問題] 關於 fork() 之後的記憶體位址
大家好,自學 linux programming 有遇到一些問題,
程式碼如下,
```
pid_t pid;
int num = 0;
printf("before fork()\n");
pid = fork();
printf("pid: %d, num: %d, %p\n", pid, num, &num);
if(pid == 0){
// child process
num = 111;
}
else{
// parent process
num = 999;
}
sleep(1);
printf("pid: %d, num: %d, %p\n", pid, num, &num);
```
自己在做一些小實驗,
想要驗證 fork() 之後,parent 跟 child 會使用不同的記憶體空間,
但是經由上述的程式碼驗證的時候,
printf 印出來的 num 數值不同,但記憶體地址 &num 卻都是一樣的
想問說為什麼有這個現象?
是因為 我程式碼寫錯,還是因為 虛擬記憶體等等的其他因素所造成的?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.187.70 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1620167732.A.0BF.html
→
05/05 10:19,
3年前
, 1F
05/05 10:19, 1F
→
05/05 10:20,
3年前
, 2F
05/05 10:20, 2F
→
05/05 10:44,
3年前
, 3F
05/05 10:44, 3F
推
05/07 03:01,
3年前
, 4F
05/07 03:01, 4F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章