D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
thread-self
/
root
/
proc
/
thread-self
/
root
/
opt
/
alt
/
ruby18
/
share
/
ri
/
1.8
/
system
/
IO
/
Filename :
pipe-c.yaml
back
Copy
--- !ruby/object:RI::MethodDescription aliases: [] block_params: comment: - !ruby/struct:SM::Flow::P body: "Creates a pair of pipe endpoints (connected to each other) and returns them as a two-element array of <tt>IO</tt> objects: <tt>[</tt> <em>read_file</em>, <em>write_file</em> <tt>]</tt>. Not available on all platforms." - !ruby/struct:SM::Flow::P body: In the example below, the two processes close the ends of the pipe that they are not using. This is not just a cosmetic nicety. The read end of a pipe will not generate an end of file condition if there are any writers with the pipe still open. In the case of the parent process, the <tt>rd.read</tt> will never return if it does not first issue a <tt>wr.close</tt>. - !ruby/struct:SM::Flow::VERB body: " rd, wr = IO.pipe\n\n if fork\n wr.close\n puts "Parent got: <#{rd.read}>"\n rd.close\n Process.wait\n else\n rd.close\n puts "Sending message to parent"\n wr.write "Hi Dad"\n wr.close\n end\n" - !ruby/struct:SM::Flow::P body: <em>produces:</em> - !ruby/struct:SM::Flow::VERB body: " Sending message to parent\n Parent got: <Hi Dad>\n" full_name: IO::pipe is_singleton: true name: pipe params: | IO.pipe -> array visibility: public