亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2370 | 回復: 9
打印 上一主題 下一主題

fork 后變量的地址問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-02-10 15:19 |只看該作者 |倒序瀏覽
#include<apue.h>
#include<unistd.h>
#include<stdlib.h>
#include<setjmp.h>

int glob=6;
char buf[]="a write to stdout\n";

int main()
{
&nbsp;&nbsp;&nbsp;&nbsp;int var;
&nbsp;&nbsp;&nbsp;&nbsp;pid_t pid;
&nbsp;&nbsp;&nbsp;&nbsp;var=88;
&nbsp;&nbsp;&nbsp;&nbsp;if(write(STDOUT_FILENO,buf,sizeof(buf))!=sizeof(buf))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;err_sys("write error!");
&nbsp;&nbsp;&nbsp;&nbsp;printf("before fork \n");

&nbsp;&nbsp;&nbsp;&nbsp;if((pid=fork())<0)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;err_sys("fork error\n");
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;else if(pid==0)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glob++;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var++;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;{sleep(2);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;printf("pid=%d,glob=%d,var=%d\n",getpid(),glob,var);
&nbsp;&nbsp;&nbsp;&nbsp;printf("address glob=%d,address var=%d\n",&glob,&var);
&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}



fork 后子進程獲得了父進程的變量的拷貝,但是這兩個進程的變量 地址是一樣的,值確不一樣,為什么,子進程的變量又存放在哪里

論壇徽章:
1
黑曼巴
日期:2020-02-27 22:54:26
2 [報告]
發(fā)表于 2009-02-10 15:29 |只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽

論壇徽章:
0
3 [報告]
發(fā)表于 2009-02-10 15:39 |只看該作者
樓上能不能說的詳細一點

論壇徽章:
0
4 [報告]
發(fā)表于 2009-02-10 15:48 |只看該作者
原帖由 jiean 于 2009-2-10 15:39 發(fā)表
樓上能不能說的詳細一點


在程序中的地址為邏輯地址,32位環(huán)境下每個進程的邏輯地址都為0-4G。內存條上的那個地址稱為物理地址。
操作系統(tǒng)會將每個進程中的邏輯地址通過段式轉換以及頁式轉換將其轉化為對應的物理地址。由于每個進程都有獨立的頁表,所以雖然不同的進程中的某個變量有相同的邏輯地址,但是由于它們的頁表不同,所以對應出去的實際的物理地址也不相同。

評分

參與人數 1可用積分 +5 收起 理由
langue + 5 我很贊同

查看全部評分

論壇徽章:
0
5 [報告]
發(fā)表于 2009-02-10 16:27 |只看該作者
記得最近一段時間,好像就是前2天左右吧,有人問過類似問題的

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
6 [報告]
發(fā)表于 2009-02-10 16:48 |只看該作者
好多人都是不看理論,一上來就搞編程的,
莫非都是些中學生?

看看《操作系統(tǒng)》一類的書,基礎打好還是很有必要的。

論壇徽章:
95
程序設計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農
日期:2015-10-19 19:43:35程序設計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
7 [報告]
發(fā)表于 2009-02-10 16:49 |只看該作者
原帖由 flw 于 2009-2-10 16:48 發(fā)表
好多人都是不看理論,一上來就搞編程的,
莫非都是些中學生?

看看《操作系統(tǒng)》一類的書,基礎打好還是很有必要的。

agreed.

論壇徽章:
0
8 [報告]
發(fā)表于 2009-02-10 19:51 |只看該作者
原帖由 flw 于 2009-2-10 16:48 發(fā)表
好多人都是不看理論,一上來就搞編程的,
莫非都是些中學生?

看看《操作系統(tǒng)》一類的書,基礎打好還是很有必要的。



能寫代碼也不錯了,總比現在的很多碩士、博士,都畢業(yè)答辯了,還沒寫過幾行代碼的~~~
有問題,先看下書,再google,然后再問,效率會高些

論壇徽章:
0
9 [報告]
發(fā)表于 2009-02-10 20:16 |只看該作者
上學學的東西全還給老師了,慚愧啊

論壇徽章:
0
10 [報告]
發(fā)表于 2009-02-15 22:45 |只看該作者
原帖由 c/unix 于 2009-2-10 15:29 發(fā)表
邏輯地址,不是物理地址

言簡意賅~無須再多言~~
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP