プログラムが終了する前に、コンソール アプリケーションの出力をテキスト ファイルに記録するようにしようとしています。これは、コンソール アプリケーション (tool.exe) を起動する GUI プログラムです。問題は、CTRL + C を使用してコンソール アプリケーションを終了していることです。このコンソール アプリケーションも変更できません。これを行ういくつかの方法を試しましたが、どれもうまくいかないようです( tool.exe > output.txt )。
どのアプローチを取るべきか、誰かが私を正しい方向に向けることができますか? それは大歓迎です。
編集:
ファイルは作成されますが、空であり、データを受け取りません。私が気付いたのは、自分でコマンドラインからツールを実行すると機能するということです。例えば。c:\>tool.exe > output.txt
ただし、GUI アプリケーションから実行した場合、これは機能しません。
ツールを実行するために使用しているコードは次のとおりです。
strcpy (tool, "\" start /D \"");
strcat (tool, toolLocation);
strcat (tool, "\" tool.exe > output.txt\"");
system (tool);
これにより、tool.exe が実行され、output.txt が正常に作成されますが、ファイルには何も出力されません。
EDIT2:
実際に起こっていることは、 を使用しているためstart
、 の代わりに>output.txt
が出力されていることだと思います。これにより、空のファイルが作成される理由が説明されます。Start は、実行中の新しいコマンドラインを実行しているだけです。問題は、どうすればこの問題を回避できますか?start
tool.exe
tool.exe