What should I do in order to capture output to a string ???
You can’t, in the way that you showed. You must use IO.popen as I said
before.
Im no expert on this… I don’t agree… earlier with help of the
Redirector class it almost worked, except for a few glitches.
I hope that some of you rubists has a nicer solution than Redirector ?
Yes, I know that IO.popen can be used for capturing output from
child processes. But I really want to use “system” and “backquote” ![]()
The problem is this: you are forking a child process, which inherits
stdin/stdout/stderr. It then writes to them using Unix write() calls, to
file descriptors 1 (stdout) and 2 (stderr).Now, you can redirect fds 1/2 to a file before forking, in which case the
child will write to that file. But you cannot redirect those fds to a Ruby
object, because the Unix write() syscall does not call Ruby!
Im no expert on this either… thus im asking ![]()
VIM can execute a child process and capture its output.
How does other applications do this redirection ?
I cannot believe that this is NOT possible with ruby ???
[snip good technical description]
But in general, I think it’s the right thing to let stderr do its job, of
giving an out-of-band error reporting channel.
I want to capture all output like VIM or Emacs… I want to
do the same… I don’t agree with you here ![]()
···
On Wed, 07 May 2003 20:31:39 +0900, Brian Candler wrote:
On Wed, May 07, 2003 at 06:55:54PM +0900, Simon Strandgaard wrote:
–
Simon Strandgaard
