stdinから読み込まれたプログラム出力リダイレクト

stdinから読み込まれたプログラム出力リダイレクト

出力をリダイレクトしたいとき行く。出力私が使うプログラム

./a.out > output.txt

プログラムが次を読むときは動作しません。標準入力。この場合、出力をどのようにリダイレクトしますか?

ただ使えます

./a.out < inputs.txt > output.txt

私は同じことができますが、入力を読むことができます標準入力

編集:うまくいくことに気づきましたが、すべてがファイルに保存されるため、プロンプトは表示されません。出力.txt。したがって、唯一の問題はプロンプトを見ることです。標準入力同時にリダイレクトを維持します。

ベストアンサー1

stderr1つのオプションは代わりにプロンプ​​トを作成することですstdout。端末では表示されますが、表示されませんoutput.txt

別のオプションは、出力にリダイレクトを使用せずに出力ファイル名をパラメータとして渡し、ファイルを直接開くことです。その後、stdoutプロンプトに従って使用できます。 (これはより柔軟です。ファイルにのみ送信する内容、画面にのみ送信する内容、両方に送信する内容を決定できます。)

コードを変更できない場合の唯一のオプションは、tee別のユーティリティを使用することです。バッファリングが問題になる可能性があります。stdbuf役に立つかもしれません。

おすすめ記事