PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
LinuxDev
[問題] 關於 fork() 之後的記憶體位址
作者:
gowrite
(gowrite)
2021-05-05 06:35:30
大家好,自學 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 卻都是一樣的
想問說為什麼有這個現象?
是因為 我程式碼寫錯,還是因為 虛擬記憶體等等的其他因素所造成的?
謝謝
作者:
leolarrel
(真.粽子無雙)
2021-05-05 10:19:00
https://reurl.cc/L0kGz7
可以先看一看接著就可以看 LDD3 的第八章也可以google: linux 虛擬地止 實體地止 GDT LDT
作者:
dces4212
(flawless)
2021-05-07 03:01:00
虛擬位置相同 實體位置不同
繼續閱讀
[問題] NTP server 同步
gn00618777
Fw: [問題] file descriptor 檔案描述符的問題
gowrite
[問題] kernel 讀取 FAT 檔案
lovefo
[問題] Ubuntu突然scp可以登入但ssh不能登入,哪
ruthertw
[問題] 測試 I2C USB function
chiaohuang
[問題] 如何在 kernel 使用 system call table
eecheng87
[問題] 想要降低load average
icetofux
[問題] linux file system
XAMDOU
[問題] 語音同步問題
chiaohuang
[問題] System.map的offset
ucrxzero
Links
booklink
Contact Us: admin [ a t ] ucptt.com