プログラムの出力をファイルにリダイレクトしようとしています。時々、プログラムは画面に数行を印刷し、終了するまでこれを続けます。終了すると、印刷される行数は数千行になります。
リダイレクトコマンドなしでプログラムを実行すると、すべての情報が画面に正常に印刷されます。ただし、>、1>、2>、または他の多くの可能性を使用しようとすると、2つのうちの1つが発生します。出力ファイルは完全に空白であるか、最初の30行だけを含みます(ページを埋めるだけ)。また、"|cat>"を使用してリダイレクトしようとしましたが、何も起こりませんでした。
問題の原因は何ですか?私はUbuntuを使って端末でプログラムを実行しています。このプログラムはC ++でコンパイルされ、「cout」を使用してテキストを印刷します。
成功せずに使用しようとしたリダイレクトの例です。
- ./testProgram > 出力.txt
- ./testProgram 1> 出力.txt
- ./testProgram 2> 出力.txt
- ./testProgram &> 出力.txt
- ./testProgram > 出力.txt 2>&1
- ./テストプログラム|cat>output.txt
- >代わりに>>を使用する上記のすべてのバリエーションには同じ問題があります。
Obs: 計算に数日かかることがあるので、 cat output.txt を使って時々ファイルを見てください。それでも、上記のように、テキストの最初のページだけがファイルに書き込まれ、それが私が見ることができるすべてです。このテキストの量はプログラムを実行する数秒に相当するため、ファイルを読み取るのは問題の原因ではないようです。