Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

pipes in gforth

0 views
Skip to first unread message

Michael Kalus

unread,
May 15, 2008, 11:49:37 PM5/15/08
to
Guten Morgen.

Gegeben sei das Wort MAKESODFELDER das Zahlenfelder ausgibt.
Im file FELDER.FS steht als letztes dann MAKESODFELDER BYE

Die Kommandozeile "gforth felder.fs > sodfelder3.txt" beim Aufruf des
gforth tut was es soll. Die Felder stehen anschließend im file
SODFELDER3.TXT - soweit so gut.

Nun möchte ich aber statt dessen versuchen das file SODFELDER3.TXT
aus dem file FELDER.FS heraus zu erzeugen. Und dazu den output
vorübergehend umlenken, um danach weiter zu compilieren. So dachte ich
folgendes würds tun:

...
s" sodfelder3.txt" r/w create-file throw value fd-out
s" > sodfelder3.txt" w/o open-pipe throw value pipe-id
makesodfelder
pipe-id close-pipe throw drop
fd-out close-file throw
inlude sodfelder3.txt
...

Damit wird zwar das file angelegt, aber nichts hinein geschreiben, der
output geht weiter über das Terminal.

Ich seh schon, auf der nächsten Forthtagung brauche ich ein Pipes-
Tutorial. ;-)

Michael

Michael Kalus

unread,
May 16, 2008, 12:04:30 AM5/16/08
to
Moin

Ha, ich habs!

> Nun möchte ich aber statt dessen versuchen das file SODFELDER3.TXT
> aus dem file FELDER.FS heraus zu erzeugen. Und dazu den output
> vorübergehend umlenken, um danach weiter zu compilieren.

s" sodfelder3.txt" r/w create-file throw value fd-out
fd-out to outfile-id
makesodfelder
stdout to outfile-id
fd-out close-file throw
include sodfelder3.txt

Das tuts.

Aber neugierig geworden bin ich ja nun doch:
Was könnte denn ein OPEN-PIPE für mich tun?

Michael

Bernd Paysan

unread,
May 16, 2008, 3:39:06 AM5/16/08
to
Michael Kalus wrote:
> Aber neugierig geworden bin ich ja nun doch:
> Was könnte denn ein OPEN-PIPE für mich tun?

Du könntest den Output in ein anderes Programm 'reinleiten.

--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://www.jwdt.com/~paysan/

Michael Kalus

unread,
May 17, 2008, 6:05:02 PM5/17/08
to
On 16 Mai, 09:39, Bernd Paysan <bernd.pay...@gmx.de> wrote:
> > Was könnte denn ein OPEN-PIPE für mich tun?

> Du könntest den Output in ein anderes Programm 'reinleiten.

Hm. Wenn ich zwei gforth prozesse hätte, also in zwei verschiedenen
terminals, könnten die sich dann unterhalten? Hat das schon mal jemand
ausprobiert?

Michael

Anton Ertl

unread,
May 18, 2008, 9:41:11 AM5/18/08
to
Michael Kalus <michae...@onlinehome.de> writes:
>On 16 Mai, 09:39, Bernd Paysan <bernd.pay...@gmx.de> wrote:
>> > Was k=F6nnte denn ein OPEN-PIPE f=FCr mich tun?
>
>> Du k=F6nntest den Output in ein anderes Programm 'reinleiten.
>
>Hm. Wenn ich zwei gforth prozesse h=E4tte, also in zwei verschiedenen
>terminals, k=F6nnten die sich dann unterhalten?

Sowas wird man normalerweise nicht ueber OPEN-PIPE machen, und
normalerweise laeuft das andere Programm im selben Terminal. Eine
Ausnahme ist, wenn das andere Programm ein eigenes Terminal aufmacht;
ein Beispiel dafuer siehst Du in
<http://www.complang.tuwien.ac.at/viewcvs/cgi-bin/viewcvs.cgi/*checkout*/gforth/status.fs>,
wo das andere Programm xterm ist, und dazu verwendet wird, um den
Stack-Status anzuzeigen.

- anton
--
M. Anton Ertl Some things have to be seen to be believed
an...@mips.complang.tuwien.ac.at Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html

0 new messages