- 締切済み
コンソールアプリの入出力
コンソールアプリのコンパイラをコマンドライン上で実行しているんですが、コンパイルエラーが長いと最初の方のエラーが見えないので、統合開発環境のソフトのような物を作りかけているところなんですが、たとえば DIR A: というコマンドを送り、結果を受け取るだけの簡単なソフトだとしてもAllocConsole()という関数を使わずにやるのは難し過ぎるでしょうか? 参考になるソースを公開している統合開発環境のソフトはありませんか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- ttyp03
- ベストアンサー率28% (277/960)
イマイチ趣旨がわかりませんが、コマンドラインの結果を受け取るのであれば、popen じゃダメなんですか?
- terra5
- ベストアンサー率34% (574/1662)
統合開発環境ではありませんが、emacs系のエディタは エディタのバッファ上でシェル(コマンドプロンプト)を実行でき、結果もエディタのバッファへのインサートになります。 Windowsだと,Mule for Win32,Meadow,xyzzyのソースが参考になると思います。 Windowsでの実現方法は、おそらくパイプを使ってSetStdHandleで実行するコマンドの標準出力を読み取る形だろうと推測します。 多分プロセスを新規に作成し標準出力をパイプにリダイレクト(SetStdhandle)し、CreateProcessでハンドルを継承したプロセスとして目的となるコマンドを実行し、 パイプから読み取るという形になるんじゃないかと。 unix系ならpipe作ってforkしてclose,dupしてexecって感じですが。(こっちなら経験有り) リダイレクトはshellがやってますから、unix系ならshellのソースが参考になるんでしょうが、Windowsだとコマンドプロンプトのソースは簡単には入手できませんから、似たことをしているソフトのソースが参考になると思いますが・・・今のところ、emacs系エディタしか思いつきません。 >できるだけ規模の小さいもののソースが良いです。 統合開発ソフトを要求していて小さいソースというのはちょっと無理な要求じゃないですか? 該当部分はたいしたサイズじゃないように思いますから、まずは見てみるのがいいと思いますが。
- tatsu99
- ベストアンサー率52% (391/751)
>参考になるソースを公開している統合開発環境のソフトはありませんか? 統合開発環境wide studioがソースを公開しています。 参考URLを参照してください。
- 参考URL:
- http://www.widestudio.org/
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
質問には書いてありませんが、これはWin32を前提としているのですよね。 それであれば、SetStdHandleで標準入出力先を切り替えることが可能です。
- 50100
- ベストアンサー率28% (99/351)
趣旨が違っているかもしれませんが... コンソールに出力される文字数が多すぎて画面が流れてしまうのであれば、出力をリダイレクトしてファイルに保管しておき、エディタ等で開けば良いのでは? 例えば C:\>DIR A: >dir.txt 2>&1 最後の2>&1は標準エラー出力を標準出力へリダイレクトするという指示です。
お礼
ありがとうございます。 リダイレクトでエラーは見れましたが、ソフトの作成も進めたいです。
補足
ありがとうございます。 まだ見ていませんが、できるだけ規模の小さいもののソースが良いです。 バックグランドでコンソールと通信する部分が分かれば十分です。