argv[2] -它包含一个项目列表,如0x1, 0x2, 0x3。
假设我们像这样执行程序(运行时)- ./program -i all
int main(int argc, const char* argv[])
{
// an array of character arrays.
argv[2] = { "0x1", "0x2", "0x3" }; //How can we define argv[2] by a variable name, like for example : argv[2] is all. So, all = { "0x1", "0x2", "0x3" };
return 0;
}
注:all也是argv[2].
/program -i all (where all = {"0x1" 0x2", "0x3"} .程序需要显式检查字符串"all"在参数列表中,然后当它找到它时,做一些不同的事情。
int main(int argc, char* argv[])
{
int my_argc;
char **my_argv;
if (argc > 2) {
if (!strcmp(argv[2], "all")) {
my_argc = 3;
my_argv = (char *[]){ "0x1", "0x2", "0x3" };
} else {
my_argc = argc - 2;
my_argv = argv + 2;
}
int i;
for (i=0; i<my_argc; i++) {
handle_arg(my_argv[i]);
}
}
return 0;
}
您将把这些项传递给可执行文件:
./a.out 0x1 0x2 0x3
然后在你的程序中,argv[1] = "0x1" argv[2] = "0x2",等等