【发布时间】:2019-06-11 01:04:40
【问题描述】:
我在课堂上得到了这个代码:
int main(int argc, char **argv)
{
if(argc)
{
return 1;
}
puts(argv[3]);
return 0;
}
现在,我应该编写第二个程序来执行它并让它打印“Hello World!”。所以我必须找到一种方法来传递参数(我假设使用 execv)同时让 argc 保持在 0。
这是我目前所拥有的:
int main()
{
pid_t pid = fork();
if(pid == 0)
{
char *argv[] = { "filepath", "placeholder",
"placeholder", "Hello World!" };
execv("filepath", argv);
exit(0);
}
else
{
waitpid(pid, 0, 0);
}
return 0;
}
这将在 Linux 上运行。
我尝试了 mbj 的原始建议,在参数数组中传递一个 0,遗憾的是没有奏效。但是,如果我将 0 作为第一个参数,则 argc 变为 0,但是在尝试打印参数时会得到输出“LC_MEASUREMENT=de_DE.UTF-8”。谷歌搜索这也没有真正帮助我。
我在这里完全不知所措,因此感谢您提供任何帮助。
【问题讨论】:
-
这将在什么操作系统上运行?
-
在 Linux 上,将其添加到帖子中