シェル - プログラム出力をファイルにリダイレクトできない

シェル - プログラム出力をファイルにリダイレクトできない

プログラムの出力をファイルにリダイレクトしようとしています。時々、プログラムは画面に数行を印刷し、終了するまでこれを続けます。終了すると、印刷される行数は数千行になります。

リダイレクトコマンドなしでプログラムを実行すると、すべての情報が画面に正常に印刷されます。ただし、>、1>、2>、または他の多くの可能性を使用しようとすると、2つのうちの1つが発生します。出力ファイルは完全に空白であるか、最初の30行だけを含みます(ページを埋めるだけ)。また、"|cat>"を使用してリダイレクトしようとしましたが、何も起こりませんでした。

問題の原因は何ですか?私はUbuntuを使って端末でプログラムを実行しています。このプログラムはC ++でコンパイルされ、「cout」を使用してテキストを印刷します。

成功せずに使用しようとしたリダイレクトの例です。

  1. ./testProgram > 出力.txt
  2. ./testProgram 1> 出力.txt
  3. ./testProgram 2> 出力.txt
  4. ./testProgram &> 出力.txt
  5. ./testProgram > 出力.txt 2>&1
  6. ./テストプログラム|cat>output.txt
  7. >代わりに>>を使用する上記のすべてのバリエーションには同じ問題があります。

Obs: 計算に数日かかることがあるので、 cat output.txt を使って時々ファイルを見てください。それでも、上記のように、テキストの最初のページだけがファイルに書き込まれ、それが私が見ることができるすべてです。このテキストの量はプログラムを実行する数秒に相当するため、ファイルを読み取るのは問題の原因ではないようです。

ベストアンサー1

おすすめ記事