So-net無料ブログ作成
検索選択

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

入出力先は、コマンドを入力したコマンドプロンプトです。

これを利用して、隠しログ出力機能が実装できそうだ。

[車(セダン)] 今日の一冊
世にも恐ろしい世界史の迷宮

世にも恐ろしい世界史の迷宮

  • 作者: 桐生 操
  • 出版社/メーカー: PHP研究所
  • 発売日: 1999/05
  • メディア: 単行本

タグ:Windows VisualC++
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。