Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!rochester!dibble
From: dibble@rochester.ARPA (Peter C. Dibble)
Newsgroups: comp.sys.m6809
Subject: Re: More on SELECT bug, bidirectional IO
Message-ID: <27684@rochester.ARPA>
Date: Tue, 12-May-87 11:33:31 EDT
Article-I.D.: rocheste.27684
Posted: Tue May 12 11:33:31 1987
Date-Received: Fri, 15-May-87 00:39:38 EDT
References: <1671@ihwpt.ATT.COM>
Organization: U of Rochester, CS Dept., Rochester, NY
Lines: 23
Keywords: Mental block,both ways on one path,9-40
Summary: Std, Stdout, under the hood

In article <1671@ihwpt.ATT.COM>, knudsen@ihwpt.ATT.COM (mike knudsen) writes:
> Thinking about why I had worked thru that notorious BASIC09
> example (page 9-40, SELECT) a dozen times and never figured
> out myself what the error was, I finally found my mental
> block.  Maybe you'd like to be warned about this.
> 
> Hanging around UN*X, OS9, and Pipes leads you to think
> that input comes in over here and output goes out over there.
> That is, you have StdIn and StdOut and never the twain shall
> meet.  I would get real nervous contemplating the idea of

The three standard paths are often just three aliases for the same
path.  A process's path numbers (0 to 15) are actually indexes into
a table in the process descriptor.  The table stores indexes into
the system path table (this makes it clear how calls like dup work).

When the system starts it opens the terminal, and dups it twice.  All
three standard path numbers therefore refer to the same actual path.

((Of course, it isn't healthy to think about this.  Input paths go IN,
output PATHs go out.  Update paths to the terminal are a strange concept.))

Peter