我有一段调用系统命令的 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”。