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