システムコマンドを呼び出すC++コードがあります。自分のC++実行可能ファイルのファイル名をシステムコマンドに渡したいです。これを行う方法を知っている人はいますか?たとえば、私のC++コードは「switch-5」と呼ばれます。私がやりたいことは次のようなものです。
system( "./ script.sh switch-5");
誰か手がかりがありますか?
実行可能ファイル名は、argvで渡される最初の引数です。
これをテストするには、次のコマンドを実行します。
int main(int argc, char **argv)
{
printf("My program name: '%s'\n", argv[0]);
return 0;
}
(文字列をsystem()に渡すために、スクリプト名と組み合わせる方法を知っていると思います。)
argv[0]
mainに渡されるのは、実行可能ファイルの名前です。
アプリの起動時にグローバル変数に保存します。
static char *selfname;
int main(int argc, char **argv)
{
selfname = argv[0];
// etc.
}
注意してください。argv[0]には、相対パスや絶対パスなど、プログラムの開始に使用されたものが正確に含まれています(例: "./ programname")。