[LCP]A small doubt on fork
Bradley, Peter
PBradley at uwic.ac.uk
Fri Oct 19 19:15:27 UTC 2001
Hi,
I think what the enquirer needs to know is that a process's address space is
copied over the fork.
man fork says:
The fork() system call causes the creation of a new process. The new
child process is created wth exactly one thread or lightweight
process. The new child process contains a replica of the calling
thread (if the calling process is multi-threaded) and its entire
address space, possibly including the state of mutexes and other
resources.
(my emphasis)
HTH
Peter
-----Original Message-----
From: Asif Raj [mailto:asif at gdit.iiit.net]
Sent: 19 October 2001 09:53
To: linuxcprogramming at lists.linux.org.au
Subject: Re: [LCP]A small doubt on fork
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
>
_______________________________________________
This is the Linux C Programming List
: http://lists.linux.org.au/listinfo/linuxcprogramming List
More information about the linuxCprogramming
mailing list