[LCP]A small doubt on fork

Asif Raj asif at gdit.iiit.net
Fri Oct 19 18:54:31 UTC 2001


It is because when the execution of the program begins, variable i is
initialised and assigned a particular address in the memory. when you
change the value of i, the value contained at that memory location changes
but the program still refers to variable i through that memory location
only.

cheers
asif

On Fri, 19 Oct 2001, sasidhar p wrote:

> Hi,
>    The result of the following program is surprising me...
> 
> main()
> {
>     int pid;
>     int i = 5;
> 
>     switch (pid = fork()) {
>          case 0 : {
>                         i = 7;
>                         printf("In child address of i = %p \n",&i);
>                       } break;
>          case -1 : printf("Fork error \n"); break;
>          default : printf("In parent address of i = %p\n",&i);
>     }
> }
> 
> Out put on my m/c:
> 
> In parent address of i = effffa68
> In child address of i = effffa68
> 
> Problem : I was expecting that the addresses shold be different because fork 
> creates a new process.  But the o/p is both addresses are same.
> 
> Question: Why is this so?
> 
> Thanx,
> Sasi.
> 
> 
> _________________________________________________________________
> Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
> 
> _______________________________________________
> This is the Linux C Programming List
> :  http://lists.linux.org.au/listinfo/linuxcprogramming List
> 




More information about the linuxCprogramming mailing list