我有一段调用系统命令的C ++代码..我想将我自己的C ++可执行文件的文件名传递给系统命令..谁知道怎么做? 因此,例如我的C ++代码被称为“switch-5”..我想做的就像是;
system(“./ script.sh switch-5”);
任何人都有任何线索?
答案 0 :(得分:6)
您的可执行文件名是argv中传递的第一个参数。
要测试这个,请运行:
int main(int argc, char **argv)
{
printf("My program name: '%s'\n", argv[0]);
return 0;
}
(我假设你知道如何将它与你的脚本名称结合起来,以便将字符串传递给system()。)
答案 1 :(得分:0)
argv[0]
是您的可执行文件的名称。
答案 2 :(得分:0)
在应用启动期间将其存储在全局变量中:
static char *selfname;
int main(int argc, char **argv)
{
selfname = argv[0];
// etc.
}
答案 3 :(得分:0)
请注意,argv [0]包含用于启动程序的确切内容,包括相对或绝对路径,例如:“。/ programname”。