help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Invoke an octave session via pipe


From: Qianqian Fang
Subject: Re: Invoke an octave session via pipe
Date: Thu, 07 May 2009 19:16:28 -0400
User-agent: Thunderbird 2.0.0.19 (X11/20090107)

thank you John, and also Michael's reply for using the -i option.

I tried -i and my initial pipe read returned the "octave:1>" prompt,
however, sending commands via my pascal function still
failed to give me any more output to read.

I am not sure I understood the the experiment outlined in your reply.
I ran the "octave --interactive < fifo > foo.out " command and it simply
gave an empty foo.out file; I did not have chance to run the cat command
from another term and octave already quit.

In the past, I only got succeed using pipes to run a .m file from
command line and retrieve the printed results, but that was a
single execution; but now what I am trying to achieve is to interact
with an persistent session (sort of like a GUI), I am not sure if this
is indeed possible with pipe operations.

I also found some possible issues on the pascal side, I posted it
on the Lazarus forum and I will let you know if I get any useful
feedback from there.

Qianqian


John W. Eaton wrote:
On  7-May-2009, Qianqian Fang wrote:

| What makes me curious is why my stdout reading did not give me the
| octave prompt, i.e. "octave:1>"? looks like once octave get started,
| it will start something else, which I can not access its stdout via
| octave's stdout.

No, I think Octave writes the prompt and most output to stdout.
Probably you want to use the --interactive option when talking to
Octave over a pipe.  If you are on a Unixy system, try this
experiment:

  in one terminal window, run

    mkdir fifo
    octave --interactive < fifo > foo.out

  and in another, type

    cat > fifo
    svd (rand (3))
    fprintf (stderr, "stderr!\n")

and then look at foo.out.  It should contain all of Octave's output
except the "stderr!" message, which should have been printed to the
terminal where you started Octave.

jwe




reply via email to

[Prev in Thread] Current Thread [Next in Thread]