小编Luc*_*caW的帖子

使用 execv 启动程序并在不提高 argc 的情况下传递参数

我在课堂上得到了这个代码:

    int main(int argc, char **argv)
    {
        if(argc)
        {
            return 1;
        }

        puts(argv[3]);
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

现在,我应该编写第二个程序来执行它并使其打印“Hello World!”。所以我必须找到一种方法来传递参数(我假设使用 execv)同时让 argc 保持在 0。

这是我到目前为止:

    int main(int argc, char **argv)
    {
        if(argc)
        {
            return 1;
        }

        puts(argv[3]);
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

这将在 Linux 上运行。

我尝试了 mbj 最初的建议,在参数数组中传递一个 0,但遗憾的是没有奏效。但是,如果我将 0 作为第一个参数,argc 将变为 0,但是当我尝试打印参数时会得到输出“LC_MEASUREMENT=de_DE.UTF-8”。谷歌搜索这也没有真正帮助我。

我在这里完全不知所措,所以任何帮助表示赞赏。

c arguments fork argc

2
推荐指数
1
解决办法
1502
查看次数

标签 统计

argc ×1

arguments ×1

c ×1

fork ×1