私は次のように行うと:システムコールのエラー出力を取得しますか?
output = `identify some_file`
output == "Output of identify"
しかし...
output = `identify non_existant_file`
output != "Error output of identify"
がどのようにシステムコールのエラー出力を得ることができますか?
私は次のように行うと:システムコールのエラー出力を取得しますか?
output = `identify some_file`
output == "Output of identify"
しかし...
output = `identify non_existant_file`
output != "Error output of identify"
がどのようにシステムコールのエラー出力を得ることができますか?
Open3.popen3
を使用することができます。
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open3/rdoc/Open3.html#method-c-popen3
popen3(* CMD、&ブロック)ソース
オープンSTDIN、STDOUT、およびstderrストリームを切り替え、外部の実行を開始するためにクリック。
Open3.popen3([env,] cmd... [, opts]) {|stdin, stdout, stderr, wait_thr|
pid = wait_thr.pid # pid of the started process.
...
exit_status = wait_thr.value # Process::Status object returned.
}
私は答えを見つけました。出力はstderrに送られています。だから、僕はstdoutに標準エラー出力をリダイレクトするように、コマンドの最後に以下を追加することができます
output = `identify any_file 2>&1`
output == "Error or output of identify"