Hi, all.
win32_popen is popen2,popen3,popen4 implementation on Windows adapted
from
Python source code.
You can use win32_popen3 like this:
require 'win32_popen'
fin,fout,ferr = IO.win32_popen3("date")
puts fout.gets
fin.print "2002-01-01\n"
while !fout.eof
puts fout.gets
end
fin,fout,ferr = IO.win32_popen3("irb")
begin
a = fout.getc
putc a.chr
end while a != ?>
fin.print "exit\n"
while !fout.eof
puts fout.gets
end
You can download mswin binary for your Ruby version.
http://home.nownuri.net/~phasis/popen/win32_popen_1.6.8.zip
http://home.nownuri.net/~phasis/popen/win32_popen_1.8.0.zip
Souce code and binary included.
[Requirement]
* Ruby 1.6.5+
It may be made with other version but not verified.
[Install binary]
ruby install.rb
[Install from source]
ruby extconf.rb
nmake
ruby install.rb
[methods]
IO#win32_popen2(cmd[, mode])
Executes cmd as a sub-process. Returns the file objects (child_stdin,
child_stdout).
IO#win32_popen3(cmd[, mode])
Executes cmd as a sub-process. Returns the file objects (child_stdin,
child_stdout, child_stderr).
IO#win32_popen4(cmd[, mode]])
Executes cmd as a sub-process. Returns the file objects (child_stdin,
child_stdout_and_stderr).
Regards.
Park Heesob