On Tue, 8 Jun 2004, Luke A. Kanies wrote:

> Okay, I know this is an easy one, but I can't find it documented and I
> can't find an example in any libraries.  Yes, I'm sure it's in the
> documentation but I can't find it, and yes I'm sure there are examples,
> but I can't find them.
>
> I need to write to stdin on another process.  In perl, this would look
> like:
>
> open PIPE, "| process";
> print PIPE "stuff\n";
> close PIPE;
>
> Of course, I tried a couple different iterations of that:
>
> File.open("| process", "w") { |file| ... }
> IO.open("| process", "w") { |file| ... }
> IO.popen("| process", "w") { |file| ... }
>
> All of them fail, or I would not be sending this.  So, what's the secret?
> Like I said, I'm sure it's easy, but I can't find it.  Apparently my
> Google-fu is not up to snuff today...
>
> Thanks,
> Luke


   irb(main):001:0> pipe = IO.popen 'cat', 'r+'
   => #<IO:0xb740a4d8>

   irb(main):002:0> pipe.puts 'foobar'
   => nil

   irb(main):003:0> pipe.gets
   => "foobar\n"


check this out if you need more control:

   http://www.codeforpeople.com/lib/ruby/session/


-a

>
> --
> The easiest way to figure the cost of living is to take your income and
> add ten percent.
> ---------------------------------------------------------------------
> Luke Kanies | http://abstractive.org | http://reductiveconsulting.com
>
>
>

--
===============================================================================
| EMAIL   :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
| PHONE   :: 303.497.6469
| A flower falls, even though we love it; and a weed grows, even though we do
| not love it. --Dogen
===============================================================================