Search the web
Sign In
New User? Sign Up
linux-bangalore-programming · LB Programming Discussions
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want to share photos of your group with the world? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
fork() - understanding the memory space of parent and child   Message List  
Reply | Forward Message #7531 of 7596 |
My queries are :
1. how the fork actually works regarding the memory space of child and parent
2. the below code shows same address for a auto variable "var" , but different
values in case of parent and child.
3. how could same address contain two different values.

/* the code may look big, but its relatively simple, plz
* do look into it
*/
/* headers included */
int main( int argc, char* argv[] ){
pid_t pid;
int var = 0;

printf("before fork address of var = %x\n", &var);

if( (pid = fork()) < 0 )
perror("perror");
if( pid == 0 ){

printf("child process running pid = %d \n",getpid());
var++;
printf("child address of &var = %x\n", &var);
printf("child value of var = %d\n", var);
}
else{
wait();
printf("parent process running = %d \n",getpid());
printf("parent address of &var = %x\n", &var);
printf("parent value of var = %d\n", var);
}

exit(0);

}

/* sample output */

[root@localhost process]# cc p2.c -o p2.out
[root@localhost process]# ./p2.out
before fork address of var = bff5a700
child process running pid = 3918
child address of &var = bff5a700
child value of var = 1
parent process running = 3917
parent address of &var = bff5a700
parent value of var = 0


Thanks in advance,
Vinod




Fri Apr 3, 2009 12:22 pm

vin_vrs
Offline Offline
Send Email Send Email

Forward
Message #7531 of 7596 |
Expand Messages Author Sort by Date

My queries are : 1. how the fork actually works regarding the memory space of child and parent 2. the below code shows same address for a auto variable "var" ,...
vin_vrs
Offline Send Email
Apr 3, 2009
1:33 pm

I am just making an assumption. May be only the offset is same; physical addresses may be different. Regards, Joe. ________________________________ From:...
Joe Cheri Ross
joecheriross
Offline Send Email
Apr 4, 2009
6:08 am

... Pick any OS related book(Silberchantz is well known) for an in depth intro. ... Those are two different variables in two different address spaces. fork ...
Sridhar.V.Iyer
sridhar.iyer
Offline Send Email
May 1, 2009
4:15 am

Hi Vinod, calling fork or any family of fork calls will call the "clone" system call with different parameters. Most implementations of pthreads also call the ...
Rajesh T N
rajeshatn
Offline Send Email
May 2, 2009
6:58 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help