タグ

ブックマーク / kyagi.hatenadiary.org (1)

  • コマンドの標準出力/標準エラー/終了ステータスを保持したい - 8tree にっき

    ruby スクリプトからコマンドを実行したいのだがコマンドの標準出力、標準エラー、終了ステータスはその都度保持しておきたい。「system/IO.popen/Open3.popen3 を使えばなんとかなるのでは…」と思っていたのだが、実現できなかったので自分で新たに Command クラスを作成してみた。内部で Process.fork を使って子プロセスを生成し、IO.pipe を使って子から親に標準出力/標準エラーを渡した後に、Process.waitpid2 で終了ステータスを取得している。データは do メソッドを呼ぶ度に @info に格納し、履歴として @history にどんどん @info を追加していく。 ■要求 - コマンドを実行し、標準出力/標準エラー/終了ステータスをデータとして格納すること。 - 上記のデータをいつでも参照できること。 ■実装(独自 Command

    コマンドの標準出力/標準エラー/終了ステータスを保持したい - 8tree にっき
  • 1