Получение STDOUT и STDERR внешней программы *, в то время как* это выполняется (Ruby)

В зависимости от того, каковы требования к скорости, Вы могли также использовать Trie. Но нет никакого смысла в реализации одного из тех, если TreeMap достаточно быстр.

9
задан h3rald 30 October 2009 в 13:01
поделиться

1 ответ

На самом деле, это было проще, чем я думал, похоже, это работает отлично:

STDOUT.sync = true # That's all it takes...
IO.popen(command+" 2>&1") do |pipe| # Redirection is performed using operators
  pipe.sync = true
  while str = pipe.gets
    puts "-> "+str # This is synchronous!
  end
end

... и да, это работает в Windows!

15
ответ дан 4 December 2019 в 13:48
поделиться