From: Park Heesob Date: 2002-12-31T16:01:42+09:00 Subject: [ANN] win32_popen 0.1 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