Finally back after the weekend.
On 2005-01-23, Olegil at home wrote:
<SNIP>
But what can you do? Is there a good way in AmigaOS to say "I want to run this application, and this file descriptor (which I have open for writing) will be the stdin, and THESE file descriptors (which I have open for reading) will be stdout/stderr".
The closest in 3.x would be dos.library/System() which specifies a command to run and a taglist which can specify e.g. stdin, stdout and the shell under which to execute the process.
Unfortunately, this seems to be a bit like implementing the C system() call using the C system() call....
It would probably work under AmigaOS by passing all programs to the built-in shell - but it would be a bit of a kludge.
All in all I think the dos.library/CreateNewProc() call would be more appropriate for a shell.
And if so, does it port well into POSIX?
Kind of - it is probably quite easy to write a _small_ wrapper to get the same functionality under a posix system.
If you don't get what I'm hinting at here, I'm actually suggesting writing a shell from scratch, AND making it portable :-P
Not a bad idea, but I think we should focus on writing an intepreter first.
(Ok, what I really mean is that we should not spend any time now on handling command completion, history management etc. - an intepreter can probably work as a shell with no command-line features)
-Peter aka. Archprogrammer
Reality is for people who cannot face ScienceFiction. Only lefthanded people are in their right minds.