【发布时间】:2015-09-08 00:24:43
【问题描述】:
我正在尝试使用 execvp 执行带有给定标志的 unix 命令。
我的数组 argv 可能包含以下元素:
{"ls", "-a"}
然后我将这个数组传递给
execvp(argv[0], argv);
如何安全地将 NULL 附加到 argv 数组的末尾,以便 execvp 知道在哪里终止?
【问题讨论】:
-
数组是静态定义的,还是作为参数传递给程序,还是从用户输入生成?
-
如果他正在接收一个没有多余空间的非 NULL 终止数组,他将不得不将它复制到一个大一个元素的数组中,但这不太可能?
-
感谢您的回复。我确实是根据用户输入生成的。正如我在下面提到的,这是对我的疏忽。我在调用 malloc 时忘记考虑 NULL 元素。