さて、私の質問はこれです。単純なC++コードがあるとします。
#include <iostream>
using namespace std;
int main(){
cout << "Hello World" << endl;
return 0;
}
プログラムで実行したいこのプログラムがあるとしましょう。これをprogと呼びます。ターミナルでこれを実行するには、次の方法があります。
./prog
私の単純なC++プログラムからこれを行う方法はありますか?例えば
#include <iostream>
using namespace std;
int main(){
./prog ??
cout << "Hello World" << endl;
return 0;
}
フィードバックは非常に義務付けられます。
system()
ライブラリ呼び出しが必要です。 system(3) を参照してください。例えば:
#include <cstdlib>
int main() {
std::system("./prog");
return 0;
}
もちろん、正確なコマンド文字列はシステムに依存します。
Popenも使用できます
#include <stdio.h>
int main(void)
{
FILE *handle = popen("./prog", "r");
if (handle == NULL) {
return 1;
}
char buf[64];
size_t readn;
while ((readn = fread(buf, 1, sizeof(buf), handle)) > 0) {
fwrite(buf, 1, readn, stdout);
}
pclose(handle);
return 0;
}
試してください system(3) :
system("./prog");
システムコマンドを使用できます。
system("./prog");
次のようなシステムコールを使用できます: http://www.cplusplus.com/reference/clibrary/cstdlib/system/
ユーザー入力をパラメーターとして使用する場合は注意が必要です。これは、意図しない結果をもたらす良い方法です。すべてをこすります!
一般に、システムコールは悪い形式として解釈される可能性があります。