私はユーザーのやりとりが必要な(キーボード入力やcliの引数などの入力が必要な)コンソールアプリケーションを作成していますが、処理の結果とは別に保存したいと思います。他のアプリケーションにパイプすることができます)。Unix上でコマンドライン出力(ユーザー対話からの処理)を分離する方法は何ですか?
ユーザーとのすべてのやり取りをcerrに送信できない場合はどうすればよいですか(すべてがエラーではない)
私はユーザーのやりとりが必要な(キーボード入力やcliの引数などの入力が必要な)コンソールアプリケーションを作成していますが、処理の結果とは別に保存したいと思います。他のアプリケーションにパイプすることができます)。Unix上でコマンドライン出力(ユーザー対話からの処理)を分離する方法は何ですか?
ユーザーとのすべてのやり取りをcerrに送信できない場合はどうすればよいですか(すべてがエラーではない)
あなたのstdoutが他の場所でパイプされている場合、(cursesやdialogのようなものを除いて)端末に何かを表示する唯一の方法はstderrです。
ユーザーの操作が必要な場合は、/ dev/ttyを開いて、プロセスの制御端末になります。標準エラーと標準入力もリダイレクトされます。
/dev/tty
は通常の方法ですが、システムは通常stdout
とstderr
にstdin
とdup()
sと一度端末を開くので、それはcerr
/stderr
から読み取るために、ほとんどのUnixライクなオペレーティングシステムでも可能です。
これは私がやったことであり、それは適切であった。ありがとうございました! (また、これが最善の答えとして選択されたのは、最も明白だったからです。) – zyndor