strick@gatech.UUCP (08/11/84)
... in response to James Jones' pipe query of july 7 I was out of town and so this response is late ... I am interested in piping things from one process to another in other ways than the shell's piping ability isn't capable of. One thing that would be nice is to have a 2-way path between two processes. Another would be catching the output of a shell command, as the UN*X shell must do in things like `` set dir1=`pwd` ''. Or to send something into a command, like lpr. All I know is that the shell that is about to spawn two piped processes opens a path to "/pipe" in the "UPDATE." mode. Then it uses the "I$DUP" to open the other end of the pipe. The two child processes inherit these paths as they are created. I think it might not be too hard to do this from a basic09 (or other) program ... if you can use the I$DUP call. I hope to have time to try some of this soon -- maybe it'll work. /* what doesn't work (I tried it): two processes just open paths to "/pipe" and try to talk */ One thing that must be different about pipeman than scfman is that when one process has issued a read or write request to the scf device, others requesting the device must wait until the first process has completed the call (e.g. the radio shack shell will not allow a process to print anything to /term while the shell is waiting for input from it). Pipeman cannot be this way or you would have deadlock: If you are doing " dir ! dump " and dump issues a read to the pipe, you dont want dir to be blocked from sending to it. If we can't make pipes work like we want, we could make a scf mailbox device driver to do this, except there would have to be two (one to write to and one to read from) for this very reason. Has anyone written a smarter shell? Positional parameters $1 $2 ... don't seem to be too hard. Wildcards $ and * would be a good bit harder. And a 'for' would really make them useful. If you can figure how to make pipes, `command` would be possible. I think the OS9 operating system has what it needs to do these things, you just need to write the shell. Memory will be a problem. My lack of time is the worst problem. Anyone have a fairy godmother? -- Henry Strickland The Clouds Project, School of ICS, Georgia Tech, Atlanta GA 30332 CSNet: Strick @ GATech ARPA: Strick.GATech @ CSNet-Relay uucp: ...!{akgua,allegra,rlgvax,sb1,unmvax,ulysses,ut-sally}!gatech!strick