apue关于fork的疑问
8.3节,说:子进程获得父进程的"数据空间"、"堆"、和"栈"的副本......父、子进程共享正文段(见7.6节)。
我想这里的"数据空间"至少包括"初始化数据段"和"非初始化数据段",那么在栈底地址0xC000 0000以上的命令行参数和环境变量包不包括在里面呢? 0xC000 0000以上就是内核空间了,是0xc000 0000一下吧。LZ打字打错了?
环境变量肯定是继承父进程的了。 回复 2# fayewangfans
我也觉得环境变量是继承父进程的,只是"数据空间"这个词,我找不到都由什么组成。
0xC000 0000之下是栈底,之上是命令行参数和环境变量(apue,P153)
你必须去查一下linux虚拟地址的划分规则。我本来是想往深里讲的,怕我说不清楚反而让你困惑。
你也可以去了解一下内核是怎样创建进程的,写时复制是一个亮点。回复 3# msheng_yeb
页:
[1]