Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Sep 1999 11:42:43 -0500
From:      Dan Nelson <dnelson@emsphone.com>
To:        bytong <bytong@yahoo.com>
Cc:        questions@FreeBSD.ORG
Subject:   Re: [bytong@yahoo.com: (no subject)]
Message-ID:  <19990929114243.A71962@dan.emsphone.com>
In-Reply-To: <19990929170355.A3481@freno.cs.tu-berlin.de>
References:  <19990929170355.A3481@freno.cs.tu-berlin.de>

next in thread | previous in thread | raw e-mail | index | archive | help
 From bytong <bytong@yahoo.com>:
> Dear :
> please find the following c program
> main()
> {
>    int i;
>    while ((i=fork())==-1);
>    if (i)
>       printf("It's parent process,process id %d parent id %d\n",getpid(),getppid());
>    else
>      printf("It's child process,process id %d parent id %d\n",getpid(),getppid());
> }
> 
> It's  very simple ,but the result amaze me.  The parent process
> return 246,181 which express the process id and its parent process
> id,the problem is child process which return 247,1, child process id
> is 247, but its parent's process id is 1 not 246, why?

Probably because the parent exited before the child got to the
getppid() call.  Children whose parents have died are 'owned' by init
(pid 1).

-- 
	Dan Nelson
	dnelson@emsphone.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990929114243.A71962>