2011-12-23 22 views
0

* .exeの束を呼び出すと、* .exeをすべて呼び出すメモ帳ファイルが呼び出され、そのメモ帳を使用する必要がありますファイル(編集可能)すべての子* .exeのパスが存在するリストを呼び出す親exeを作成したいC++:複数の* .exeを同時に呼び出す

ALSO、 すべての* .exeの "together"の呼び出しを開始する必要があります"一つずつ"。私は、すべてのexeファイルを同時に呼び出すのではなく、順次呼び出しをしたい。

ありがとうございます。システムコールを約

が、私はこのくらいのコーディングを知っている:あなたはWindowsのみを対象とした場合

#include<stdlib.h> 
char * command; 
sprintf_s("d:\\....path..%d.\\..%d",n,ctr); 
system(command); 
+7

素晴らしい!そして何が疑問ですか? –

+0

どのオペレーティングシステムですか? –

+0

すべての必要なexeを実行するC++から単一のスクリプト(バッチ/シェル)を実行します。 – Arunmu

答えて

1

、あなたがのCreateProcess WINAPI

を使用することができますUnixでは

のような(使用例hereを参照してください)同じ動作を達成するためにfork()/ exec()を使用する必要があります

+0

私はそれを完全なバイナリツリーのように再帰的に呼び出す必要があります – KB2807

+0

私はそれを取得しませんあなたは拒否的に何を意味しますか?より具体的な例を挙げて質問を強化してください。 – gastush

1

を使用しないでください0(またはその他の書式文字列ファミリ)をC++で使用します。

は、しかし:あなたのエラーの一つはsprintf_sのパラメータである:マイクロソフトによって

int sprintf_s(
    char *buffer, 
    size_t sizeOfBuffer, 
    const char *format [, 
     argument] ... 
); 

例:

// crt_sprintf_s.c 
// This program uses sprintf_s to format various 
// data and place them in the string named buffer. 
// 

#include <stdio.h> 

int main(void) 
{ 
    char buffer[200], s[] = "computer", c = 'l'; 
    int i = 35, j; 
    float fp = 1.7320534f; 

    // Format and print various data: 
    j = sprintf_s(buffer, 200,  " String: %s\n", s); 
    j += sprintf_s(buffer + j, 200 - j, " Character: %c\n", c); 
    j += sprintf_s(buffer + j, 200 - j, " Integer: %d\n", i); 
    j += sprintf_s(buffer + j, 200 - j, " Real:  %f\n", fp); 

    printf_s("Output:\n%s\ncharacter count = %d\n", buffer, j); 
} 

また、これは、マイクロソフトの拡張機能であることに注意してください。異なるコンパイラで同じプログラムをコンパイルすると失敗することがあります。

しかし、真剣に、ただやる、まったくそれらを使用しないでください。

std::stringstream ss; 
ss << "d:/foobar.exe " << arg1 << ' ' << arg2; 
const std::string command = ss.str(); 

さらに深刻なノートで:良い入門C++帳を取得し、あなたがC++を持っている場合、プログラムCをしないでくださいあなたの倉庫。

+0

+1のC++ブックの提案 –

関連する問題