0

システムコマンドを呼び出すC++コードがあります。自分のC++実行可能ファイルのファイル名をシステムコマンドに渡したいです。これを行う方法を知っている人はいますか?たとえば、私のC++コードは「switch-5」と呼ばれます。私がやりたいことは次のようなものです。

system( "./ script.sh switch-5");

誰か手がかりがありますか?

4

4 に答える 4

6

実行可能ファイル名は、argvで渡される最初の引数です。

これをテストするには、次のコマンドを実行します。

int main(int argc, char **argv)
{
   printf("My program name: '%s'\n", argv[0]);
   return 0;
}

(文字列をsystem()に渡すために、スクリプト名と組み合わせる方法を知っていると思います。)

于 2012-07-14T05:21:18.840 に答える
0

argv[0]mainに渡されるのは、実行可能ファイルの名前です。

于 2012-07-14T05:22:15.590 に答える
0

アプリの起動時にグローバル変数に保存します。

static char *selfname;

int main(int argc, char **argv)
{
    selfname = argv[0];

    // etc.
}
于 2012-07-14T05:22:22.257 に答える
0

注意してください。argv[0]には、相対パスや絶対パスなど、プログラムの開始に使用されたものが正確に含まれています(例: "./ programname")。

于 2012-07-14T16:09:08.787 に答える