2011-03-05 7 views
2

私はユーザーのやりとりが必要な(キーボード入力やcliの引数などの入力が必要な)コンソールアプリケーションを作成していますが、処理の結果とは別に保存したいと思います。他のアプリケーションにパイプすることができます)。Unix上でコマンドライン出力(ユーザー対話からの処理)を分離する方法は何ですか?

ユーザーとのすべてのやり取りをcerrに送信できない場合はどうすればよいですか(すべてがエラーではない)

答えて

1

あなたのstdoutが他の場所でパイプされている場合、(cursesやdialogのようなものを除いて)端末に何かを表示する唯一の方法はstderrです。

+0

これは私がやったことであり、それは適切であった。ありがとうございました! (また、これが最善の答えとして選択されたのは、最も明白だったからです。) – zyndor

1

ユーザーの操作が必要な場合は、/ dev/ttyを開いて、プロセスの制御端末になります。標準エラーと標準入力もリダイレクトされます。

3

/dev/ttyは通常の方法ですが、システムは通常stdoutstderrstdindup() sと一度端末を開くので、それはcerr/stderrから読み取るために、ほとんどのUnixライクなオペレーティングシステムでも可能です。

関連する問題