Re: fork, vfork, shared mem, et al...

From: Kilkenny (
Date: 12/20/95

On Wed, 20 Dec 1995, Tel Janin Aellinsar wrote:

> I've been sort of thinking about how to go about rewriting Circle for a 
> fork/vfork/etc style of input and output.  It would be a MAJOR rewrite, 
> I would assume that I need some kind of shared memory, unless I want to 

If you run a linux with a 1.3.3x+ kernel then clone() will fork with 
shared memory.  I'm not sure how to use shared memory otherwise.  But 
shared memory is not really needed to do this.  See below.

> Any suggestions?  Ideally, I'd like to keep files out of it (as much as 
> files can be kept out of any program that runs on a UNIX computer) and 
> rely solely on memory.  How much work would it be to get a fancy message 
> queueing system running?  To hell with a fancy one, any queueing system 
> that works is fine with me.

Pipes will do exactly this.  Make the 'login' process do all the login 
stuff, then write the character to the pipe.  The main server should 
check every pulse if there is a character in the pipe.  It would work as 
a queue.  As far as I know this would work great, and I might even do it 
You probably want to check the manpage for pipe().
If you want to have it be two different processes by two different 
executables, you can have it start out to be the same, but do a exec in 
the child process after you fork to start the other process/program.

> Actually...  this IS sort of the incorrect message for the mailing list, 
> but hey.  It's better than flames back and forth.

Well..  In my understanding, this is a list about circle coding and 
questions, and this is about changing circle code, so it seems it fits 
just right.

*  Ole Gjerde                                   | Computer Science major  *
*                                               |    at  North Dakota     *
*  Homepage:   |    State University     *
*  Email:            |-------------------------*
*                 |   Proud user of Linux   *

This archive was generated by hypermail 2b30 : 12/07/00 PST