[問題] fork後 virtual_ addr & physical_addr
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: 為什麼 fork 之後,所看到的 virtual address 是一樣的,
這是說,它們對應到的 phisical address 也應該是一樣的嗎?
但是跑出來的結果,告訴我 phisical address 應該是不同的!但是,
為什麼 virtual address 會一樣? 我想要知道 virtual address 為什麼一樣!
還是說,那個不是 virtual address 呢?! 不知有沒有人可以幫小弟解答!
希望得到的正確結果:child_x_addr != parent_x_addr
這個結果是我自己想的,或許不可能會這樣子!
開發平台: Linux)
有問題的code:
#include <stdio.h>
int main() {
int x, pid;
pid = fork();
if (pid==0) {
x = 3;
printf("child: x = %d, x_addr = %p\n", x, &x);
} else {
x = 5;
printf("parent: x = %d, x_addr = %p\n", x, &x);
}
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.120.34.2
推
02/01 22:07, , 1F
02/01 22:07, 1F
→
02/01 22:08, , 2F
02/01 22:08, 2F
→
02/01 22:08, , 3F
02/01 22:08, 3F
→
02/01 22:23, , 4F
02/01 22:23, 4F
→
02/02 03:02, , 5F
02/02 03:02, 5F
推
02/02 10:56, , 6F
02/02 10:56, 6F
推
02/03 16:40, , 7F
02/03 16:40, 7F
→
02/03 16:41, , 8F
02/03 16:41, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章