Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Mar 1999 15:28:00 +0530
From:      Samit Pal <samit@usa.ltindia.com>
To:        FreeBSD-Questions@FreeBSD.ORG
Subject:   rfork()
Message-ID:  <36F37127.7C0B121D@usa.ltindia.com>

next in thread | raw e-mail | index | archive | help
Can any one suggest how to use rfork( RFPROC | RFMEM );
according to the manual, freeBSD supports this and it should create a
new process
which will share the address space.
But what I'm getting is
a) It returns only to the parent process with a childID.
b) It doesn't go into child part
c) 'PS' shows that a child process is active.
Code:
#include <unistd.h>
main()
{
        int childId;
        printf("Parent Process start \n");
        if ( (childId = rfork(RFMEM | RFPROC) ) == 0 ) {
                printf("In Child childId(%d) PId(%d)\n",
childId,getpid() );
                sleep(4);
                exit(0);
        }
        {
                char buf[10] = "Samit";
                int nRet;
                printf("Parent process continues with childId(%d)
%s,PID(%d)\n",
 childId, buf,getpid());
        sleep(5);
        }
}

Output:
$ cc test.c
$ a.out &
$ Parent Process start
Parent process continues with childId(10759) Samit,PID(10758)
ps
  PID  TT  STAT      TIME COMMAND
10697  p2  Ss     0:00.07 -sh (sh)
10758  p2  S      0:00.00 a.out
10759  p2  Z      0:00.00  (a.out)
10760  p2  R+     0:00.00 ps

 why it is created zombie and it does not execute the code ?

--Samit.



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?36F37127.7C0B121D>