[#1026] Is this a bug? — Dave Thomas <Dave@...>

18 messages 2000/01/03

[#1084] Infinite loop — Dave Thomas <Dave@...>

17 messages 2000/01/11

[#1104] The value of while... — Dave Thomas <Dave@...>

24 messages 2000/01/11

[ruby-talk:01198] Re: Question about 'open'

From: ts <decoux@...>
Date: 2000-01-30 12:03:26 UTC
List: ruby-talk #1198
>>>>> "D" == Dave Thomas <Dave@thomases.com> writes:

 I'm not really sure, but the block is executed in the parent process.

D>      open("|-", "w+")

  ruby fork

D>                       { |f|

   you are in the parent process (the test is useless, I think)

D>        if f == nil
D>           print "in Child\n"
D>        else
D>           print "Got: ", f.gets, "\n"
D>        end
D>      }

 you are in the parent and the child

D> outputs

D>      Got: nil

pigeon% cat b.rb
#!/usr/bin/ruby
p "Parent #$$"
f = 12
open("|-", "w+") {|f|
    print "Got: ", f.gets
}
p "Hello #$$ #{f}"
 
pigeon% b.rb
"Parent 28677"
Got: "Hello 28678 12"
"Hello 28677 #<IO:0x401f8a58>"
pigeon% 


Guy Decoux

In This Thread