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