C ++我自己的文件名是什么?

时间:2012-07-14 05:19:36

标签: c++ variables system

我有一段调用系统命令的C ++代码..我想将我自己的C ++可执行文件的文件名传递给系统命令..谁知道怎么做? 因此,例如我的C ++代码被称为“switch-5”..我想做的就像是;

system(“./ script.sh switch-5”);

任何人都有任何线索?

4 个答案:

答案 0 :(得分:6)

您的可执行文件名是argv中传递的第一个参数。

要测试这个,请运行:

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

(我假设你知道如何将它与你的脚本名称结合起来,以便将字符串传递给system()。)

答案 1 :(得分:0)

传递给main的

argv[0]是您的可执行文件的名称。

答案 2 :(得分:0)

在应用启动期间将其存储在全局变量中:

static char *selfname;

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

    // etc.
}

答案 3 :(得分:0)

请注意,argv [0]包含用于启动程序的确切内容,包括相对或绝对路径,例如:“。/ programname”。