Как отображается память при использовании форка?

я новичок в "fork()", я везде читал, что когда вызывается fork(), запускается точная копия текущего (вызывающего) процесса. Теперь, когда я запускаю следующий код, должно быть два разных процесса, имеющих две разные области памяти, назначенные их переменным и функциям.

#include<stdio.h>
int i=10;
int pid;
 int main(){
  if((pid=fork())==0){
    i++;//somewhere I read that separate memory space for child is created when write is needed
    printf("parent address= %p\n",&i);// this should return the address from parent's memory space
  }else{
    i++;
    i++;
    printf("child address= %p\n",&i);// this should return the address of child's memory space 
  }
  wait(0);
  return(0);
 }
Why The output looks like:: 
child address::804a01c 
parent address::804a01c

Почему оба адреса одинаковы как для родителя, так и для дочернего элемента?

5
задан buch11 15 March 2012 в 16:56
поделиться