| tee.exe output.txt
プロジェクトのプロパティ「デバッグ|コマンド引数」に文字列を入れていると思います。
残念ながら、そのプロパティはリダイレクト演算子のみをサポートしており、パイプ演算子はサポートしていません。preopertyに | tee.exe output.txt
文字列があり、コマンド ライン引数をダンプするプログラムを実行すると、その情報が引数として渡されていることがわかります。「Debugging | Command Argument」は、実際には本格的なシェル ( などcmd.exe
) によって処理されるわけではありません - IDE が単純なリダイレクトをサポートしているだけです (実際には、予想以上にサポートしているようです)。
http://msdn.microsoft.com/en-us/library/kcw4dzyf.aspxから:
You can use the following redirection operators in this box:
< file
Reads stdin from file.
> file
Writes stdout to file.
>> file
Appends stdout to file.
2> file
Writes stderr to file.
2>> file
Appends stderr to file.
2> &1
Sends stderr (2) output to same location as stdout (1).
1> &2
Sends stdout (1) output to same location as stderr (2).
>>
コマンドを使用してプログラムの出力をファイルにリダイレクトし、tail-f
コマンドを使用してファイルに追加されたものを表示することにより、探しているものの限定バージョンを作成できます。これを行う場合、I/O がバッファリングされないように、おそらくsetvbuf( stdout, NULL, _IONBF, 0 )
最初に呼び出したいと思うでしょう。main()
そうtail -f
しないと、バッファがフラッシュされるまで表示されません。出力操作が発生するたびに表示したいと思うでしょう。
もう 1 つのオプションは、コンソール ウィンドウの「スクリーン バッファの高さ」プロパティを大きくすることです。新しい Windows マシンを入手したときに最初に行うことの 1 つは、その値を 3000 程度に設定することです。次に、通常どおりにプログラムをデバッグしてコピーします。 /コンソール ウィンドウを閉じる前に、その内容を貼り付けます。