I'm trying to be able to write to STDIN - yeah, its a strange thing to do,
I know, but I've got to send a control-C to a child process created with
Win32 CreateProcess calls and it seems like a good way to do it.
I can do this on Solaris and it seems to work:
###################################
stdin_num = $stdin.fileno
puts "stdin fileno is: #{stdin_num}"
save_stdin = $stdin.clone
begin
stin = IO.new(stdin_num,"w")
stin.putc "^C"
rescue
puts "got #{$!}"
end
$stdin.reopen(save_stdin)
####################################
but on WinNT I get:
"stdin fileno is: 0"
"got Bad file number"
This is coming from the IO.new(0,"w")
0 seems to be illegal here for Windows (I can put a 1 or 2 there
corresponding to stdout and stderr, but not a 0 corresponding to stdin).
Any ideas? Is this just one of those things you can't do on Windows?
Phil