From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Wed, 14 Jun 2006 13:16:23 +0300 From: Gleb Natapov Subject: Re: vfork implementation... Message-ID: <20060614101623.GE17758@minantech.com> References: <20060614100635.GD17758@minantech.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: owner-linux-mm@kvack.org Return-Path: To: "Abu M. Muttalib" Cc: linux-mm@kvack.org List-ID: On Wed, Jun 14, 2006 at 03:47:07PM +0530, Abu M. Muttalib wrote: > HI, > > Should the wording be interpreted as "should not write"? > Yes. After vfork() a child and a parent share an address space. Whatever a child does to memory is visible in a parent. > ~Abu. > > -----Original Message----- > From: Gleb Natapov [mailto:gleb@minantech.com] > Sent: Wednesday, June 14, 2006 3:37 PM > To: Abu M. Muttalib > Cc: linux-mm@kvack.org > Subject: Re: vfork implementation... > > > On Wed, Jun 14, 2006 at 03:33:27PM +0530, Abu M. Muttalib wrote: > > I meant, its NOT ALLOWED, still program is ABLE to do so.. hence the > > wordings.. > > > The only thing a process ALLOWED to do after vfork() is exec(), but it is > ABLE to do whatever it wants to do. I am not ALLOWED to drive while drunk, > but I am ABLE to. > > > > ~Abu. > > > > -----Original Message----- > > From: owner-linux-mm@kvack.org [mailto:owner-linux-mm@kvack.org]On > > Behalf Of Gleb Natapov > > Sent: Wednesday, June 14, 2006 3:16 PM > > To: Abu M. Muttalib > > Cc: linux-mm@kvack.org > > Subject: Re: vfork implementation... > > > > > > On Wed, Jun 14, 2006 at 03:11:58PM +0530, Abu M. Muttalib wrote: > > > Hi, > > > > > > This mail is intended for Robert Love, I hope I can find him on the > list. > > > > > > Please refer to Pg 24 of chapter 2 of Linux Kernel Development. > > > > > > As mentioned in the description of vfork call, it is said that child is > > not > > > allowed to write to the address space, but in the following example its > > not > > > so. The child is able to write to the process address space. This > program > > > was tested with Linux Kernel 2.6.9. Why is it so? > > > > > Not allowed and not able are two different things. > > > > > fork.c > > > > -------------------------------------------------------------------------- > > -- > > > --------------------------------------- > > > #include > > > > > > unsigned char *glob_var = NULL; > > > > > > void main() > > > { > > > int pid = -8,i; > > > pid = vfork(); > > > > > > if(pid < 0) > > > printf("\n FORK ERROR \n"); > > > > > > if(pid == 0) > > > { > > > unsigned char * local_var = NULL; > > > local_var = (unsigned char *)malloc(5); > > > strcpy(local_var,"ABCD"); > > > glob_var = local_var; > > > printf("\nCHILD :Value of glob_var is %X local_var is %X glob_var is > %c > > > \n",glob_var,local_var,*glob_var); > > > for(i=0;i<4;i++) > > > { > > > printf("\n CHAR is %c \n",glob_var[i]); > > > } > > > printf("\nCHILD1 :Value of glob_var is %X %c\n",glob_var,*(glob_var)); > > > } > > > > > > if(pid > 0) > > > { > > > printf("\nParent : Value of glob_var is %X > %c\n",glob_var,*(glob_var)); > > > free(glob_var); > > > printf("\nParent : Value of glob_var is %X > %c\n",glob_var,*(glob_var)); > > > exit(0); > > > } > > > } > > > > -------------------------------------------------------------------------- > > -- > > > --------------------------------------- > > > > > > Regards, > > > Abu. > > > > > > -- > > > To unsubscribe, send a message with 'unsubscribe linux-mm' in > > > the body to majordomo@kvack.org. For more info on Linux MM, > > > see: http://www.linux-mm.org/ . > > > Don't email: email@kvack.org > > > > -- > > Gleb. > > > > -- > > To unsubscribe, send a message with 'unsubscribe linux-mm' in > > the body to majordomo@kvack.org. For more info on Linux MM, > > see: http://www.linux-mm.org/ . > > Don't email: email@kvack.org > > -- > Gleb. -- Gleb. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org