Windowsアプリケーションでprintf:裏技編 [日記]
(前回までのあらすじ)
Windowsアプリケーションでコマンドプロンプトに文字を出力するには、AllocConsole(AttachConsole)
とfreopen
で出来るけど、AllocConsole
は必ずもう1つコマンドプロンプトが開くし、AttachConsole
はXP以降専用なので、どっちもいまいち。
さて。
Windowsアプリケーションでコマンドプロンプトへの出力が出来ないのは、標準出力が何処にも割り当てられていないから。
だから、freopen()
で再割り当てを行ったわけですが、別の方法で割り当てが出来ればいいんじゃないかと思いついたのです。
で、コマンドプロンプトから、こんなコマンドを入力してみました。
window_app.exe < input_file > output_file
おぉ、ちゃんと動いてる。
リダイレクトが出来るなら、パイプだって可能なはず。
ということで、
(cygwin等の)UNIX like tool があれば、
次の様にコマンド入力すれば、特に何もしなくても、
Windowsアプリケーションで、標準入力から入力して、標準出力へ出力できます。
(printfやgetcharが普通に使える)
cat | window_app.exe | cat
入出力先は、コマンドを入力したコマンドプロンプトです。
これを利用して、隠しログ出力機能が実装できそうだ。
|
|
2006-09-30 08:51
nice!(0)
コメント(0)
トラックバック(0)
コメント 0