プロが教えるわが家の防犯対策術!

こんばんは。C言語初心者のjovanといいます。
初心者のため拙い文章になってしまう可能性があることを初めにお詫びしておきます。


現在SYSTEM関数を使って、コマンドプロンプトでコマンドを実行するプログラムを作成しているのですが、少々困ったことになりました。
というのも、

SYSTEM("cl c:\\temp.c");

などと打ち込むと、ダブルクォーテーション内の記述がコマンドプロンプト上で実行され、コマンドプロンプトが終了されますよね?

私がやりたいのはそれだけではなく、(1)コンパイラをロードし、(2)フォルダを移動し、(3)コンパイルというような動作をコマンドプロンプト上で行わせたいのです。
しかしながら、この3つの動作をSYSTEM関数だけで処理するのは、SYSTEM関数は、1つのコマンドがコマンドプロンプトで実行されるとコマンドプロンプトが終了してしまうという性質上不可能だと思います。少なくとも私の知識上では無理です。

というわけで、SYSTEM関数、または他の関数でもいいのですが、コマンドプロンプト上で複数のコマンドを実行するプログラムはどのように作成したらよいのかを教えてくださると幸いです。

A 回答 (3件)

コマンドは & で区切れば複数個書けます。



system("cd \\Windows\\temp & dir & dir D:\\ ");

とか。

この回答への補足

C言語の仕組みというよりはDOSコマンドの仕組みを理解してれば解決できた問題でしたね。
C言語関係を検索しても道理でひっかからないわけだ…

お陰様で解決することができました。
ありがとうございます。

補足日時:2009/01/18 21:22
    • good
    • 0

つ~か, そもそも「コンパイラをロードする」って, どういう処理のこと?


本当にその順序が必要?
    • good
    • 0
この回答へのお礼

ええ、必要。
ただ、system関数の使い方には何ら関係のない回答だから、説明は省略するね。

お礼日時:2009/01/18 21:26

SYSTEM関数というのは自作の関数でしょうか?


だとすれば、作ったあなたにしか分かりません。

標準にはsystem関数ならありますが、その動作は完全に処理系定義です。
処理系不明の状況では何とも言えません(多分Windowsだと思いますが断定できません)。

この回答への補足

標準ライブラリに組み込まれているsystem関数の事でした。
大文字と小文字の区別を何も考えないで記述してしまいました。
プログラム上は区別することが多いから注意が必要でしたね。以後気をつけます。

補足日時:2009/01/18 21:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!