我正在尝试从单独的二进制文件中移动一些代码,并将其放入我的主程序中。不幸的是,我无法模仿主函数的初始化变量。

我该如何创建 argcargv 用手?有人可以给我一些示例作业吗?

由于看起来像这样:

int main(int argc, char *argv[])

我认为我可以这样分配:

int argc=1;
char *argv[0]="Example";

但这行不通。谁能告诉我如何做到这一点?

有帮助吗?

解决方案

int argc = 3;
char *argv[4];
argv[0] = "fake /path/to/my/program";
argv[1] = "fake arg 1";
argv[2] = "fake arg 2";
argv[3] = NULL;
fakemain(argc, argv);

其他提示

最后一个元素 argv[] 数组实际上是 argv[argc] 这是一个 NULL 指针。

一些示例代码:

char *argv[] = { "first", "second", NULL }; 
int argc = sizeof(argv) / sizeof(*argv) - 1;

你为什么要那样做?如果使用IDE,则它将有一个选项添加命令行选项。如果您直接调用程序,请使用命令选项调用它

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top